- Mar 04, 2010
-
-
Evan Cheng authored
llvm-svn: 97687
-
Erick Tryzelaar authored
llvm-svn: 97685
-
Erick Tryzelaar authored
llvm-svn: 97684
-
Erick Tryzelaar authored
llvm-svn: 97683
-
Erick Tryzelaar authored
llvm-svn: 97682
-
Evan Cheng authored
Move MachineInstrExpressionTrait::getHashValue() out of line so it can skip over only virtual register defs. This matches what isEqual() is doing. llvm-svn: 97680
-
Evan Cheng authored
Re-apply r97667 but with a little bit of thought put into the patch. This implements a special DenseMapInfo trait for DenseMap<MachineInstr*> that compare the value of the MachineInstr rather than the pointer value. Since the hashing and equality test functions ignore defs it's useful for doing CSE kind optimization. llvm-svn: 97678
-
Johnny Chen authored
MULS <Rdm>, <Rn>, <Rdm> according to A8.6.105 MUL Encoding T1. llvm-svn: 97675
-
- Mar 03, 2010
-
-
Dan Gohman authored
llvm-svn: 97673
-
Evan Cheng authored
llvm-svn: 97670
-
Evan Cheng authored
llvm-svn: 97667
-
Dan Gohman authored
CSE and recursive RAUW calls delete a node from the use list, invalidating the use list iterator. There's currently no known way to reproduce this in an unmodified LLVM, however there's no fundamental reason why a SelectionDAG couldn't be formed which would trigger this case. llvm-svn: 97665
-
Evan Cheng authored
Machine CSE work in progress. It's doing some CSE now. But implicit def of physical registers are getting in the way. llvm-svn: 97664
-
Evan Cheng authored
llvm-svn: 97663
-
Chris Lattner authored
and is too old to really care about the performance of the generated compiler. llvm-svn: 97662
-
Evan Cheng authored
llvm-svn: 97661
-
Andrew Lenharth authored
Fix PR6444, note still doesn't compile libgcc2 all the way, but fixes that error. May not fix it in an ABI complient way. It wasn't clear what gcc does llvm-svn: 97660
-
Chris Lattner authored
llvm-svn: 97659
-
Bill Wendling authored
--- Reverse-merging r97592 into '.': U lib/CodeGen/TargetLoweringObjectFileImpl.cpp llvm-svn: 97657
-
Johnny Chen authored
and STRHT for disassembly only. llvm-svn: 97655
-
Chris Lattner authored
Scope accelerator. llvm-svn: 97652
-
Chris Lattner authored
entry we're about to process is obviously going to fail, don't bother pushing a scope only to have it immediately be popped. This avoids a lot of scope stack traffic in common cases. Unfortunately, this requires duplicating some of the predicate dispatch. To avoid duplicating the actual logic I pulled each predicate out to its own static function which gets used in both places. llvm-svn: 97651
-
Chris Lattner authored
SwitchOpcodeMatcher) and have DAGISelMatcherOpt form it. This speeds up selection, particularly for X86 which has lots of variants of instructions with only type differences. llvm-svn: 97645
-
Bill Wendling authored
llvm-svn: 97644
-
Dan Gohman authored
of loops. llvm-svn: 97642
-
Dan Gohman authored
llvm-svn: 97639
-
Evan Cheng authored
llvm-svn: 97635
-
Chris Lattner authored
better done by dag combine. llvm-svn: 97633
-
Johnny Chen authored
for disassembly only. llvm-svn: 97632
-
Bill Wendling authored
llvm-svn: 97631
-
Chris Lattner authored
'dsload' pattern. tblgen doesn't check patterns to see if they're textually identical. This allows better factoring. llvm-svn: 97630
-
Chris Lattner authored
that they are not destination type specific. This allows tblgen to factor them and the type check is redundant with what the isel does anyway. llvm-svn: 97629
-
Evan Cheng authored
- Change MachineInstr::isIdenticalTo to take a new option that determines whether it should skip checking defs or at least virtual register defs. This subsumes part of the TargetInstrInfo::isIdentical functionality. - Eliminate TargetInstrInfo::isIdentical and replace it with produceSameValue. In the default case, produceSameValue just checks whether two machine instructions are identical (except for virtual register defs). But targets may override it to check for unusual cases (e.g. ARM pic loads from constant pools). llvm-svn: 97628
-
Evan Cheng authored
llvm-svn: 97627
-
Evan Cheng authored
llvm-svn: 97626
-
Bill Wendling authored
llvm-svn: 97623
-
Evan Cheng authored
llvm-svn: 97617
-
Bill Wendling authored
long test(long x) { return (x & 123124) | 3; } Currently compiles to: _test: orl $3, %edi movq %rdi, %rax andq $123127, %rax ret This is because instruction and DAG combiners canonicalize (or (and x, C), D) -> (and (or, D), (C | D)) However, this is only profitable if (C & D) != 0. It gets in the way of the 3-addressification because the input bits are known to be zero. llvm-svn: 97616
-
Johnny Chen authored
disassembly only. llvm-svn: 97614
-
Erick Tryzelaar authored
llvm-svn: 97612
-