- Nov 23, 2011
-
-
Richard Smith authored
llvm-svn: 145111
-
Benjamin Kramer authored
Fixes PR11426. Not sure if a test case with a "wrong" malloc would be useful. llvm-svn: 145106
-
Duncan Sands authored
and positive: positive, because it could be directly computed to be positive; negative, because the nsw flags means it is either negative or undefined (the multiplication always overflowed). llvm-svn: 145104
-
Benjamin Kramer authored
Before: movabsq $4294967296, %rax ## encoding: [0x48,0xb8,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00] testq %rax, %rdi ## encoding: [0x48,0x85,0xf8] jne LBB0_2 ## encoding: [0x75,A] After: btq $32, %rdi ## encoding: [0x48,0x0f,0xba,0xe7,0x20] jb LBB0_2 ## encoding: [0x72,A] btq is usually slower than testq because it doesn't fuse with the jump, but here we're better off saving one register and a giant movabsq. llvm-svn: 145103
-
NAKAMURA Takumi authored
test/CodeGen/X86/block-placement.ll: Add explicit -mtriple=i686-linux. X86 Win32 CodeGen does not support EH yet. llvm-svn: 145101
-
Chandler Carruth authored
further. This invariant just wasn't going to work in the face of unanalyzable branches; we need to be resillient to the phenomenon of chains poking into a loop and poking out of a loop. In fact, we already were, we just needed to not assert on it. This was found during a bootstrap with block placement turned on. llvm-svn: 145100
-
Elena Demikhovsky authored
VSHUFPS/VSHUFPD instructions while lowering VECTOR_SHUFFLE node. I check a commuted VSHUFP mask. The patch was reviewed by Bruno. llvm-svn: 145099
-
Chandler Carruth authored
successors, they just are all landing pad successors. We handle this the same way as no successors. Comments attached for the next person to wade through here and another lovely test case courtesy of Benjamin Kramer's bugpoint reduction. llvm-svn: 145098
-
-
Jakob Stoklund Olesen authored
This was a bug in keeping track of the available domains when merging domain values. The wrong domain mask caused ExecutionDepsFix to try to move VANDPSYrr to the integer domain which is only available in AVX2. Also add an assertion to catch future attempts at emitting AVX2 instructions. llvm-svn: 145096
-
Rafael Espindola authored
directory. Patch by Markus Trippelsdorf. llvm-svn: 145095
-
Chandler Carruth authored
reversed in the function's original ordering, and we happened to encounter it while handling an outer unnatural CFG structure. Thanks to the test case reduced from GCC's source by Benjamin Kramer. This may also fix a crasher in gzip that Duncan reduced for me, but I haven't yet gotten to testing that one. llvm-svn: 145094
-
Kostya Serebryany authored
llvm-svn: 145092
-
- Nov 22, 2011
-
-
Anshuman Dasgupta authored
llvm-svn: 145079
-
Anshuman Dasgupta authored
llvm-svn: 145078
-
Hal Finkel authored
add basic PPC register-pressure feedback; adjust the vaarg test to match the new register-allocation pattern llvm-svn: 145065
-
Craig Topper authored
More fixes to the X86InstComments for shuffle instructions. In particular add AVX flavors of many instructions and fix the destination operand for some of the existing AVX entries. llvm-svn: 145063
-
Chandler Carruth authored
updateTerminator code didn't correctly handle EH terminators in one very specific case. AnalyzeBranch would find no terminator instruction, and so the fallback in updateTerminator is to assume fallthrough. This is correct, but the destination of the fallthrough was assumed to be the first successor. This is *almost always* true, but in certain cases the loop transformations will cause the landing pad to be the first successor! Instead of this brittle logic, actually look through the successors for a non-landing-pad accessor, and to assert if more than one is found. This will hopefully fix some (if not all) of the self host miscompiles with block placement. Thanks to Benjamin Kramer for reporting, Nick Lewycky for an initial stab at a reduction, and Duncan for endless advice on EH (which I know nothing about) as well as reviewing the actual fix. llvm-svn: 145062
-
Benjamin Kramer authored
llvm-svn: 145061
-
Chandler Carruth authored
dropping weights on the floor for invokes. This was impeding my writing further test cases for invoke when interacting with probabilities and block placement. No test case as there doesn't appear to be a way to test this stuff. =/ Suggestions for a test case of course welcome. I hope to be able to add test cases that indirectly cover this eventually by adding probabilities to the exceptional edge and reordering blocks as a result. llvm-svn: 145060
-
Benjamin Kramer authored
This was put in because in a certain version of DragonFlyBSD stat(2) lied about the size of some files. This was fixed a long time ago so we can remove the workaround. llvm-svn: 145059
-
Rafael Espindola authored
llvm-svn: 145057
-
Rafael Espindola authored
before the clobber so that we copy the value if needed. Fixes pr11415. llvm-svn: 145056
-
Craig Topper authored
Fix shuffle decoding logic to handle UNPCKLPS/UNPCKLPD on 256-bit vectors correctly. Add support for decoding UNPCKHPS/UNPCKHPD for AVX 128-bit and 256-bit forms. llvm-svn: 145055
-
Craig Topper authored
Add methods for querying minimum SSE version along with AVX. Simplifies all the places that had to check a version of SSE and AVX. llvm-svn: 145053
-
- Nov 21, 2011
-
-
Sebastian Pop authored
llvm-svn: 145048
-
Nick Lewycky authored
llvm-svn: 145047
-
Nick Lewycky authored
llvm-svn: 145044
-
Craig Topper authored
llvm-svn: 145028
-
Craig Topper authored
llvm-svn: 145027
-
Craig Topper authored
llvm-svn: 145026
-
Joe Abbey authored
llvm-svn: 145025
-
Craig Topper authored
Make LowerSIGN_EXTEND_INREG split 256-bit vectors when AVX1 is enabled and use AVX2 shifts when AVX2 is enabled. llvm-svn: 145022
-
- Nov 20, 2011
-
-
Nick Lewycky authored
llvm-svn: 145014
-
Nick Lewycky authored
Suggested in code review by Eli. That code in InstCombine looks kinda suspicious. llvm-svn: 145013
-
NAKAMURA Takumi authored
llvm-svn: 145011
-
Chandler Carruth authored
properly account for the *global* probability of the edge being taken. This manifested as a very large number of unconditional branches to blocks being merged against the CFG even though they weren't particularly hot within the CFG. The fix is to check whether the edge being merged is both locally hot relative to other successors for the source block, and globally hot compared to other (unmerged) predecessors of the destination block. This introduces a new crasher on GCC single-source, but it's currently behind a flag, and Ben has offered to work on the reduction. =] llvm-svn: 145010
-
Chandler Carruth authored
llvm-svn: 145009
-
Benjamin Kramer authored
llvm-svn: 145008
-
Benjamin Kramer authored
setFlags doesn't modify its arguments. llvm-svn: 145007
-