- Jan 05, 2012
-
-
Jakob Stoklund Olesen authored
The register allocators don't currently support adding reserved registers while they are running. Extend the MRI API to keep track of the set of reserved registers when register allocation started. Target hooks like hasFP() and needsStackRealignment() can look at this set to avoid reserving more registers during register allocation. llvm-svn: 147577
-
Dan Gohman authored
Values, rather than just Instructions, since it's interesting for ConstantExprs too. llvm-svn: 147560
-
- Jan 04, 2012
-
-
Benjamin Kramer authored
llvm-svn: 147553
-
Benjamin Kramer authored
llvm-svn: 147550
-
Benjamin Kramer authored
llvm-svn: 147546
-
Benjamin Kramer authored
Using DenseMap iterators isn't free as they have to check for empty buckets. Dominator queries are common so this gives a minor speedup. llvm-svn: 147544
-
Sebastian Pop authored
Get back getHostTriple. For JIT compilation, use the host triple instead of the default target: this fixes some JIT testcases that used to fail when the compiler has been configured as a cross compiler. llvm-svn: 147542
-
Akira Hatanaka authored
llvm-svn: 147541
-
Nick Lewycky authored
llvm-svn: 147529
-
Nick Lewycky authored
nsw bits on them. llvm-svn: 147528
-
Craig Topper authored
Allow vector shuffle normalizing to use concat vector even if the sources are commuted in the shuffle mask. llvm-svn: 147527
-
Craig Topper authored
llvm-svn: 147525
-
NAKAMURA Takumi authored
llvm-svn: 147521
-
Akira Hatanaka authored
llvm-svn: 147519
-
Akira Hatanaka authored
versions derive from them. - JALR64 is not needed since N64 does not emit jal. - Add template parameter to BranchLink that sets the rt field. - Fix the set of temporary registers for O32 and N64. llvm-svn: 147518
-
Akira Hatanaka authored
is Mips64. llvm-svn: 147516
-
Evan Cheng authored
llvm-svn: 147513
-
Evan Cheng authored
(x > y) ? x : y => (x >= y) ? x : y So for something like (x - y) > 0 : (x - y) ? 0 It will be (x - y) >= 0 : (x - y) ? 0 This makes is possible to test sign-bit and eliminate a comparison against zero. e.g. subl %esi, %edi testl %edi, %edi movl $0, %eax cmovgl %edi, %eax => xorl %eax, %eax subl %esi, $edi cmovsl %eax, %edi rdar://10633221 llvm-svn: 147512
-
Kostya Serebryany authored
llvm-svn: 147509
-
Chris Lattner authored
Before we'd get: $ clang t.c fatal error: error in backend: Invalid operand for inline asm constraint 'i'! Now we get: $ clang t.c t.c:16:5: error: invalid operand for inline asm constraint 'i'! "movq (%4), %%mm0\n" ^ Which at least gets us the inline asm that is the problem. llvm-svn: 147502
-
Chris Lattner authored
llvm-svn: 147501
-
Chad Rosier authored
llvm-svn: 147495
-
Jakob Stoklund Olesen authored
Patch by Andy Zhang! llvm-svn: 147491
-
- Jan 03, 2012
-
-
Jakob Stoklund Olesen authored
This patch caused a miscompilation of oggenc because a frame pointer was suddenly needed halfway through register allocation. <rdar://problem/10625436> llvm-svn: 147487
-
Jakob Stoklund Olesen authored
This can only happen if the set of reserved registers changes during register allocation. <rdar://problem/10625436> llvm-svn: 147486
-
Nadav Rotem authored
llvm-svn: 147485
-
Nadav Rotem authored
llvm-svn: 147484
-
Chad Rosier authored
then a vxorps + vinsertf128 pair if the original vector came from a load. rdar://10594409 llvm-svn: 147481
-
Nick Lewycky authored
if-statement by turning it into an assert. No functionality change. llvm-svn: 147474
-
Owen Anderson authored
Remove the restriction that target intrinsics can only involve legal types. Targets can perfects well support intrinsics on illegal types, as long as they are prepared to perform custom expansion during type legalization. For example, a target where i64 is illegal might still support the i64 intrinsic operation using pairs of i32's. ARM already does some expansions like this for non-intrinsic operations. llvm-svn: 147472
-
Lang Hames authored
llvm-svn: 147471
-
Stepan Dyatkovskiy authored
llvm-svn: 147470
-
Matt Beaumont-Gay authored
If anybody has strong feelings about 'default: assert(0 && "blah")' vs 'default: llvm_unreachable("blah")', feel free to regularize the instances of each in this file. llvm-svn: 147459
-
Eric Christopher authored
llvm-svn: 147456
-
Nick Lewycky authored
llvm-svn: 147454
-
Devang Patel authored
llvm-svn: 147453
-
Stepan Dyatkovskiy authored
llvm-svn: 147446
-
Elena Demikhovsky authored
The failure seen on win32, when i64 type is illegal. It happens on stage of conversion VECTOR_SHUFFLE to BUILD_VECTOR. The failure message is: llc: SelectionDAG.cpp:784: void VerifyNodeCommon(llvm::SDNode*): Assertion `(I->getValueType() == EltVT || (EltVT.isInteger() && I->getValueType().isInteger() && EltVT.bitsLE(I->getValueType()))) && "Wrong operand type!"' failed. I added a special test that checks vector shuffle on win32. llvm-svn: 147445
-
- Jan 02, 2012
-
-
Andrew Trick authored
"phony" insertion point. Fixes rdar://10619599: "SelectionDAGBuilder shouldn't visit PHI nodes!" assert llvm-svn: 147439
-
Duncan Sands authored
llvm-svn: 147435
-