Ah, cygwin!.. On Wed Feb 18 2015 at 10:02:17 PM Reid Kleckner <[email protected]> wrote:
> 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
