- Nov 11, 2012
-
-
Nico Weber authored
llvm-svn: 167692
-
Meador Inge authored
Transforms/InstCombine/memcmp-1.ll has a test case that looks like: @foo = constant [4 x i8] c"foo\00" @hel = constant [4 x i8] c"hel\00" ... %mem1 = getelementptr [4 x i8]* @hel, i32 0, i32 0 %mem2 = getelementptr [4 x i8]* @foo, i32 0, i32 0 %ret = call i32 @memcmp(i8* %mem1, i8* %mem2, i32 3) ret i32 %ret ; CHECK: ret i32 2 The folded return value (2 above) is computed using the system memcmp that the compiler is linked with. This can return different values on different systems. The test was originally written on an OS X 10.7.5 x86-64 box and passed. However, it failed on one of the x86-64 FreeBSD buildbots because the system memcpy on that machine returned a different value (1 instead of 2). I fixed the test by checking the folding constants with regexes. llvm-svn: 167691
-
Nico Weber authored
llvm-svn: 167690
-
Meador Inge authored
This patch migrates the memset optimizations from the simplify-libcalls pass into the instcombine library call simplifier. llvm-svn: 167689
-
Nadav Rotem authored
llvm-svn: 167688
-
Meador Inge authored
This patch migrates the memmove optimizations from the simplify-libcalls pass into the instcombine library call simplifier. llvm-svn: 167687
-
Meador Inge authored
This patch migrates the memcpy optimizations from the simplify-libcalls pass into the instcombine library call simplifier. llvm-svn: 167686
-
Nadav Rotem authored
llvm-svn: 167685
-
Nadav Rotem authored
llvm-svn: 167684
-
Meador Inge authored
This patch migrates the memcmp optimizations from the simplify-libcalls pass into the instcombine library call simplifier. llvm-svn: 167683
-
Meador Inge authored
This patch migrates the strstr optimizations from the simplify-libcalls pass into the instcombine library call simplifier. llvm-svn: 167682
-
Meador Inge authored
In some cases the library call simplifier may need to replace instructions other than the library call being simplified. In those cases it may be necessary for clients of the simplifier to override how the replacements are actually done. As such, a new overrideable method for replacing instructions was added to LibCallSimplifier. A new subclass of LibCallSimplifier is also defined which overrides the instruction replacement method. This is because the instruction combiner defines its own replacement method which updates the worklist when instructions are replaced. llvm-svn: 167681
-
Nico Weber authored
llvm-svn: 167680
-
Richard Smith authored
llvm-svn: 167679
-
- Nov 10, 2012
-
-
Fariborz Jahanian authored
lower 24bit is currently being used. llvm-svn: 167678
-
Daniel Malea authored
llvm-svn: 167677
-
Benjamin Kramer authored
ICC refuses to compile a class in an anonymous namespace if some functions aren't defined. Fixes PR13477. llvm-svn: 167676
-
Meador Inge authored
This patch migrates the strcspn optimizations from the simplify-libcalls pass into the instcombine library call simplifier. llvm-svn: 167675
-
Benjamin Kramer authored
llvm-svn: 167674
-
Craig Topper authored
llvm-svn: 167673
-
Duncan Sands authored
llvm-svn: 167672
-
Craig Topper authored
llvm-svn: 167671
-
Craig Topper authored
llvm-svn: 167670
-
Craig Topper authored
llvm-svn: 167669
-
Douglas Gregor authored
CXXRecordDecl::forallBases, which does *not* do what I need. Fixes the failure introduced in r167651. llvm-svn: 167668
-
Jason Molenda authored
GCD queue names of threads to ProcessGDBRemote::GetDispatchQueueNameForThread() May need tweaking once this version is rolled out but visual inspection looks fine. <rdar://problem/12333100> llvm-svn: 167667
-
Jason Molenda authored
things like our favorite "cl_kernels" and so module_directory here can be NULL. llvm-svn: 167666
-
Michael Liao authored
- New options '-mrtm'/'-mno-rtm' are added to enable/disable RTM feature - Builtin macro '__RTM__' is defined if RTM feature is enabled - RTM intrinsic header is added and introduces 3 new intrinsics, namely '_xbegin', '_xend', and '_xabort'. - 3 new builtins are added to keep compatible with gcc, namely '__builtin_ia32_xbegin', '__builtin_ia32_xend', and '__builtin_ia32_xabort'. - Test cases for pre-defined macro and new intrinsic codegen are added. llvm-svn: 167665
-
Richard Smith authored
llvm-svn: 167664
-
Evan Cheng authored
llvm-svn: 167663
-
Ted Kremenek authored
llvm-svn: 167662
-
Meador Inge authored
Some holes in testing where discovered while working on the LLVM library call simplifiers. llvm-svn: 167661
-
Meador Inge authored
Several of the simplifiers migrated from the simplify-libcalls pass to the instcombine pass were not correctly checking the target library information to gate the simplifications. This patch ensures that the check is made. llvm-svn: 167660
-
Meador Inge authored
In the process of migrating optimizations from the simplify-libcalls pass to the instcombine pass I noticed that a few functions are missing from the target library information. These functions need to be available for querying in the instcombine library call simplifiers. More functions will probably be added in the future as more simplifiers are migrated to instcombine. llvm-svn: 167659
-
Evan Cheng authored
xfail a bad test. This is a MC test but it's dependent on a codegen optimization which is now disabled. llvm-svn: 167658
-
Evan Cheng authored
mov lr, pc b.w _foo The "mov" instruction doesn't set bit zero to one, it's putting incorrect value in lr. It messes up backtraces. rdar://12663632 llvm-svn: 167657
-
Jim Ingham authored
llvm-svn: 167656
-
Ted Kremenek authored
The rationale is that there is no good workflow to silence the warning for specific cases, other than using pragmas. This is because the attribute to decorate an explicit fall through is only available in C++11. By that argument, this should probably also be disabled unless one is using C++11, but apparently there is an explicit test case for this warning when using C++98. This will require further discussion on cfe-commits. Fixes: <rdar://problem/12584746> llvm-svn: 167655
-
Jordan Rose authored
Previously, RegionStore was being VERY conservative in saying that because p[i].x and p[i].y have a concrete base region of 'p', they might overlap. Now, we check the chain of fields back up to the base object and check if they match. This only kicks in when dealing with symbolic offset regions because RegionStore's "base+offset" representation of concrete offset regions loses all information about fields. In cases where all offsets are concrete (s.x and s.y), RegionStore will already do the right thing, but mixing concrete and symbolic offsets can cause bindings to be invalidated that are known to not overlap (e.g. p[0].x and p[i].y). This additional refinement is tracked by <rdar://problem/12676180>. <rdar://problem/12530149> llvm-svn: 167654
-
David Blaikie authored
Fix to regression caused by r167650, caught by Richard Smith in code review. llvm-svn: 167653
-