- Dec 14, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 121740
-
Jakob Stoklund Olesen authored
llvm-svn: 121738
-
Jakob Stoklund Olesen authored
spill weight. Filter out fixed registers instead. Add support for reassigning an interference that was assigned to an alias. llvm-svn: 121737
-
Jakob Stoklund Olesen authored
llvm-svn: 121736
-
Owen Anderson authored
Second attempt at make Thumb2 LEAs pseudos. This time, perform the lowering much later, which makes the entire process cleaner. llvm-svn: 121735
-
Owen Anderson authored
Fix recent buildbot breakage by pulling SimplifyCFG back to its state as of r121694, the most recent state where I'm confident there were no crashes or miscompilations. XFAIL the test added since then for now. llvm-svn: 121733
-
Jason W Kim authored
Test has fixme, to move to .s -> .o test when AsmParser works better. llvm-svn: 121732
-
Bob Wilson authored
Use the same COPY_TO_REGCLASS approach as for the 2-register *_sfp instructions. This change made a big difference in the code generated for the CodeGen/Thumb2/cross-rc-coalescing-2.ll test: The coalescer is still doing a fine job, but some instructions that were previously moved outside the loop are not moved now. It's using fewer VFP registers now, which is generally a good thing, so I think the estimates for register pressure changed and that affected the LICM behavior. Since that isn't obviously wrong, I've just changed the test file. This completes the work for Radar 8711675. llvm-svn: 121730
-
Bob Wilson authored
llvm-svn: 121729
-
Chris Lattner authored
temporarily disable part of my previous patch, which causes an iterator invalidation issue, causing a crash on some versions of perlbmk. llvm-svn: 121728
-
- Dec 13, 2010
-
-
Dan Gohman authored
llvm-svn: 121727
-
Owen Anderson authored
llvm-svn: 121726
-
Dan Gohman authored
memdep is updated to handle it. llvm-svn: 121725
-
Dan Gohman authored
llvm-svn: 121723
-
Owen Anderson authored
Make Thumb2 LEA-like instruction into pseudos, which map down to ADR. Provide correct fixups for Thumb2 ADR, which is _of course_ different from ARM ADR fixups, or any other Thumb2 fixup. llvm-svn: 121721
-
Bob Wilson authored
llvm-svn: 121719
-
Bob Wilson authored
Jakob Olesen suggested that we can avoid the need for separate pseudo instructions here by using COPY_TO_REGCLASS in the patterns. The pattern gets pretty ugly but it seems to work well. Partial fix for Radar 8711675. llvm-svn: 121718
-
Bob Wilson authored
Partial fix for Radar 8711675. llvm-svn: 121716
-
Bob Wilson authored
llvm-svn: 121715
-
Evan Cheng authored
llvm-svn: 121714
-
Chris Lattner authored
llvm-svn: 121711
-
Owen Anderson authored
In Thumb2, direct branches can be encoded as either a "short" conditional branch with a null predicate, or as a "long" direct branch. While the mnemonics are the same, they encode the branch offset differently, and the Darwin assembler appears to prefer the "long" form for direct branches. Thus, in the name of bitwise equivalence, provide encoding and fixup support for it. llvm-svn: 121710
-
Jim Grosbach authored
llvm-svn: 121709
-
Jim Grosbach authored
llvm-svn: 121708
-
Benjamin Kramer authored
llvm-svn: 121705
-
Chris Lattner authored
llvm-svn: 121697
-
Chris Lattner authored
when the wider type is legal. This allows us to compile: define zeroext i16 @test1(i16 zeroext %x) nounwind { entry: %div = udiv i16 %x, 33 ret i16 %div } into: test1: # @test1 movzwl 4(%esp), %eax imull $63551, %eax, %eax # imm = 0xF83F shrl $21, %eax ret instead of: test1: # @test1 movw $-1985, %ax # imm = 0xFFFFFFFFFFFFF83F mulw 4(%esp) andl $65504, %edx # imm = 0xFFE0 movl %edx, %eax shrl $5, %eax ret Implementing rdar://8760399 and example #4 from: http://blog.regehr.org/archives/320 We should implement the same thing for [su]mul_hilo, but I don't have immediate plans to do this. llvm-svn: 121696
-
Chris Lattner authored
'and' case. llvm-svn: 121695
-
Chris Lattner authored
I can track down a miscompile. This should bring the buildbots back to life llvm-svn: 121693
-
Chris Lattner authored
for each constant pool entry. Using WriteTypeSymbolic here takes time proportional to the size of the module, for each constant pool entry. This speeds up -verbose-asm llc on 252.eon (a random testcase at my disposal) from 4.4s to 2.137s. llc takes 2.11s with asm-verbose off, so this is now a pretty reasonable cost for verbose comments. llvm-svn: 121691
-
Chris Lattner authored
when simplifying, allowing them to be eagerly turned into switches. This is the last step required to get "Example 7" from this blog post: http://blog.regehr.org/archives/320 On X86, we now generate this machine code, which (to my eye) seems better than the ICC generated code: _crud: ## @crud ## BB#0: ## %entry cmpb $33, %dil jb LBB0_4 ## BB#1: ## %switch.early.test addb $-34, %dil cmpb $58, %dil ja LBB0_3 ## BB#2: ## %switch.early.test movzbl %dil, %eax movabsq $288230376537592865, %rcx ## imm = 0x400000017001421 btq %rax, %rcx jb LBB0_4 LBB0_3: ## %lor.rhs xorl %eax, %eax ret LBB0_4: ## %lor.end movl $1, %eax ret llvm-svn: 121690
-
Chris Lattner authored
llvm-svn: 121689
-
Chris Lattner authored
per terminator kind. llvm-svn: 121688
-
Chris Lattner authored
llvm-svn: 121687
-
Chris Lattner authored
doing a cfg search for every block simplified. llvm-svn: 121686
-
Chris Lattner authored
llvm-svn: 121685
-
Chris Lattner authored
llvm-svn: 121684
-
Chris Lattner authored
getSinglePredecessor to simplify code. llvm-svn: 121683
-
Chris Lattner authored
llvm-svn: 121682
-
Chris Lattner authored
llvm-svn: 121681
-