See r229570 and r229560. The test suite was picking up Cygwin's bash.exe
and going crazy. Lots of tests failed due to silly escaping problems.

On Wed, Feb 18, 2015 at 1:38 AM, Timur Iskhodzhanov <[email protected]>
wrote:

> Hm? What were the other (unrelated) failures?
>
> ср, 18 февр. 2015, 1:43, Reid Kleckner <[email protected]>:
>
> Should be fixed in r229575. It took me a while to clear up the other
>> unrelated check-asan failures on my system.
>>
>> On Fri, Feb 6, 2015 at 8:11 AM, Timur Iskhodzhanov <[email protected]>
>> wrote:
>>
>>> ping
>>>
>>> Thu Feb 05 2015 at 4:53:30 PM, Timur Iskhodzhanov <[email protected]>:
>>>
>>> Interesting: this has broken down the dll_noreturn ASan tests (run as
>>>> part of check-asan and check-asan-dynamic), which uses -O0 (yes, o-zero).
>>>> Can you please make sure this doesn't affect -O0?
>>>>
>>>>
>>>> On Thu Feb 05 2015 at 2:52:57 AM Reid Kleckner <[email protected]>
>>>> wrote:
>>>>
>>>>> Author: rnk
>>>>> Date: Wed Feb  4 17:45:07 2015
>>>>> New Revision: 228236
>>>>>
>>>>> URL: http://llvm.org/viewvc/llvm-project?rev=228236&view=rev
>>>>> Log:
>>>>> Driver: Stop forcing frame pointer usage on Windows
>>>>>
>>>>> Previously, we would use a frame pointer by default on non-Linux OSs.
>>>>> On
>>>>> Linux, any optimization flags imply -fomit-frame-pointer. XCore always
>>>>> defaulted to -fomit-frame-pointer.
>>>>>
>>>>> Now x86 Windows matches our behavior on Linux. All other ISAs supported
>>>>> by Windows (ARM, x64) use xdata information, and frame pointers aren't
>>>>> useful. Frame pointers are now off by default for such targets, but can
>>>>> be forced via -fno-omit-frame-pointer and code using alloca().
>>>>>
>>>>> In fact, on Win64 our frame-pointer prologue is not describable with
>>>>> UNWIND_INFO. This change is a workaround to avoid using the broken FP
>>>>> using prologue for most functions. This is PR22467.
>>>>>
>>>>> Modified:
>>>>>     cfe/trunk/lib/Driver/Tools.cpp
>>>>>
>>>>> Modified: cfe/trunk/lib/Driver/Tools.cpp
>>>>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Too
>>>>> ls.cpp?rev=228236&r1=228235&r2=228236&view=diff
>>>>> ============================================================
>>>>> ==================
>>>>> --- cfe/trunk/lib/Driver/Tools.cpp (original)
>>>>> +++ cfe/trunk/lib/Driver/Tools.cpp Wed Feb  4 17:45:07 2015
>>>>> @@ -2288,27 +2288,49 @@ static bool addSanitizerRuntimes(const T
>>>>>    return !StaticRuntimes.empty();
>>>>>  }
>>>>>
>>>>> +static bool areOptimizationsEnabled(const ArgList &Args) {
>>>>> +  // Find the last -O arg and see if it is non-zero.
>>>>> +  if (Arg *A = Args.getLastArg(options::OPT_O_Group))
>>>>> +    return !A->getOption().matches(options::OPT_O0);
>>>>> +  // Defaults to -O0.
>>>>> +  return false;
>>>>> +}
>>>>> +
>>>>>  static bool shouldUseFramePointerForTarget(const ArgList &Args,
>>>>>                                             const llvm::Triple
>>>>> &Triple) {
>>>>> -  switch (Triple.getArch()) {
>>>>> -  // Don't use a frame pointer on linux if optimizing for certain
>>>>> targets.
>>>>> -  case llvm::Triple::mips64:
>>>>> -  case llvm::Triple::mips64el:
>>>>> -  case llvm::Triple::mips:
>>>>> -  case llvm::Triple::mipsel:
>>>>> -  case llvm::Triple::systemz:
>>>>> -  case llvm::Triple::x86:
>>>>> -  case llvm::Triple::x86_64:
>>>>> -    if (Triple.isOSLinux())
>>>>> -      if (Arg *A = Args.getLastArg(options::OPT_O_Group))
>>>>> -        if (!A->getOption().matches(options::OPT_O0))
>>>>> -          return false;
>>>>> -    return true;
>>>>> -  case llvm::Triple::xcore:
>>>>> +  // XCore never wants frame pointers, regardless of OS.
>>>>> +  if (Triple.getArch() == llvm::Triple::xcore) {
>>>>>      return false;
>>>>> -  default:
>>>>> -    return true;
>>>>>    }
>>>>> +
>>>>> +  if (Triple.isOSLinux()) {
>>>>> +    switch (Triple.getArch()) {
>>>>> +    // Don't use a frame pointer on linux if optimizing for certain
>>>>> targets.
>>>>> +    case llvm::Triple::mips64:
>>>>> +    case llvm::Triple::mips64el:
>>>>> +    case llvm::Triple::mips:
>>>>> +    case llvm::Triple::mipsel:
>>>>> +    case llvm::Triple::systemz:
>>>>> +    case llvm::Triple::x86:
>>>>> +    case llvm::Triple::x86_64:
>>>>> +      return !areOptimizationsEnabled(Args);
>>>>> +    default:
>>>>> +      return true;
>>>>> +    }
>>>>> +  }
>>>>> +
>>>>> +  if (Triple.isOSWindows()) {
>>>>> +    switch (Triple.getArch()) {
>>>>> +    case llvm::Triple::x86:
>>>>> +      return !areOptimizationsEnabled(Args);
>>>>> +    default:
>>>>> +      // All other supported Windows ISAs use xdata unwind
>>>>> information, so frame
>>>>> +      // pointers are not generally useful.
>>>>> +      return false;
>>>>> +    }
>>>>> +  }
>>>>> +
>>>>> +  return true;
>>>>>  }
>>>>>
>>>>>  static bool shouldUseFramePointer(const ArgList &Args,
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> cfe-commits mailing list
>>>>> [email protected]
>>>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>>>>
>>>>
>>> _______________________________________________
>>> cfe-commits mailing list
>>> [email protected]
>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>>
>>>
>>
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to