- Mar 26, 2009
-
-
Owen Anderson authored
llvm-svn: 67764
-
Bill Wendling authored
llvm-svn: 67742
-
Chris Lattner authored
llvm-svn: 67739
-
Chris Lattner authored
llvm-svn: 67738
-
Chris Lattner authored
llvm-svn: 67737
-
Chris Lattner authored
llvm-svn: 67736
-
Bill Wendling authored
%a = ... %b = and i32 %a, 2 %c = srl i32 %b, 1 %d = br i32 %c, into %a = ... %b = and %a, 2 %c = X86ISD::CMP %b, 0 %d = X86ISD::BRCOND %c ... This applies only when the AND constant value has one bit set and the SRL constant is equal to the log2 of the AND constant. The back-end is smart enough to convert the result into a TEST/JMP sequence. llvm-svn: 67728
-
Bill Wendling authored
llvm-svn: 67727
-
Dale Johannesen authored
called from llc, not opt, but it's an IR level optimization nevertheless.) llvm-svn: 67724
-
Devang Patel authored
Before deleting a basic block, give other loop passes a chance cleanup analysis values, related to the instructions in the basic block. llvm-svn: 67719
-
- Mar 25, 2009
-
-
Evan Cheng authored
Also fixes SDISel so it *does not* force promote return value if the function is not marked signext / zeroext. llvm-svn: 67701
-
Dale Johannesen authored
stoppoint nodes around until Legalize; doing this imposed an ordering on a sequence of loads that came from different lines, interfering with scheduling. llvm-svn: 67692
-
Chris Lattner authored
call, we should treat "i64 zext" as the start of a constant expr, but "i64 0 zext" as an argument with an obsolete attribute on it (this form is already tested by test/Assembler/2007-07-30-AutoUpgradeZextSext.ll). Make the autoupgrade logic more discerning to avoid treating "i64 zext" as an old-style attribute, causing us to reject a valid constant expr. This fixes PR3876. llvm-svn: 67682
-
Gabor Greif authored
llvm-svn: 67681
-
Devang Patel authored
Do not ignore DW_TAG_class_type! llvm-svn: 67675
-
Evan Cheng authored
llvm-svn: 67668
-
Evan Cheng authored
llvm-svn: 67667
-
Chris Lattner authored
precise than it used to be. llvm-svn: 67662
-
Devang Patel authored
llvm-svn: 67661
-
Chris Lattner authored
llvm-svn: 67657
-
- Mar 24, 2009
-
-
Evan Cheng authored
llvm-svn: 67649
-
Gabor Greif authored
llvm-svn: 67642
-
Chris Lattner authored
to/from integer types that are not intptr_t to convert to intptr_t then do an integer conversion to the dest type. This exposes the cast to the optimizer. llvm-svn: 67638
-
Dale Johannesen authored
and streamline code here a bit. llvm-svn: 67636
-
Chris Lattner authored
1. Make instcombine always canonicalize trunc x to i1 into an icmp(x&1). This exposes the AND to other instcombine xforms and is more of what the code generator expects. 2. Rewrite the remaining trunc pattern match to use 'match', which simplifies it a lot. llvm-svn: 67635
-
Dale Johannesen authored
llvm-svn: 67629
-
Chris Lattner authored
the target constraint specifies a specific physreg. llvm-svn: 67618
-
Chris Lattner authored
llvm-svn: 67617
-
Chris Lattner authored
fail. llvm-svn: 67616
-
Dan Gohman authored
to be returned in DL. LLVM's multiple-return-value support is not ABI-conforming; front-ends that wish to have code emitted that conforms to an ABI are currently expected to make arrangements for this on their own rather than assuming that multiple-return-values will automatically do the right thing. This commit doesn't fundamentally change this situation. llvm-svn: 67588
-
Dan Gohman authored
canClobberPhysRegDefs if the successor node doesn't clobber any physical registers. llvm-svn: 67587
-
Dan Gohman authored
help out the register pressure reduction heuristics in the case of nodes with multiple uses. Currently this uses very conservative heuristics, so it doesn't have a broad impact, but in cases where it does help it can make a big difference. llvm-svn: 67586
-
Evan Cheng authored
llvm-svn: 67580
-
Dale Johannesen authored
llvm-svn: 67578
-
- Mar 23, 2009
-
-
Evan Cheng authored
Fix a bug in spill weight computation. If the alias is a super-register, and the super-register is in the register class we are trying to allocate. Then add the weight to all sub-registers of the super-register even if they are not aliases. e.g. allocating for GR32, bh is not used, updating bl spill weight. bl should get the same spill weight otherwise it will be choosen as a spill candidate since spilling bh doesn't make ebx available. This fix PR2866. llvm-svn: 67574
-
Dale Johannesen authored
same as a normal i80 {low64, high16} rather than its own {high64, low16}. A depressing number of places know about this; I think I got them all. Bitcode readers and writers convert back to the old form to avoid breaking compatibility. llvm-svn: 67562
-
Dan Gohman authored
a data dependency on the load node, so it really needs a data-dependence edge to the load node, even if the load previously existed. And add a few comments. llvm-svn: 67554
-
Evan Cheng authored
llvm-svn: 67544
-
Dan Gohman authored
actually have uses, which reflects the way it's used. llvm-svn: 67540
-
Dan Gohman authored
in an SUnit, instead of just the first one. This fix is needed by some upcoming scheduler changes. llvm-svn: 67531
-