- Dec 10, 2008
-
-
Dan Gohman authored
node latencies. Use CalcLatency instead of manual code in CalculatePriorities to keep it consistent. Previously it computed slightly different results. llvm-svn: 60817
-
Evan Cheng authored
- Emit DW_AT_byte_size for struct and union of size zero. - Emit DW_AT_declaration for forward type declaration. llvm-svn: 60812
-
- Dec 09, 2008
-
-
Dan Gohman authored
The Cost field is removed. It was only being used in a very limited way, to indicate when the scheduler should attempt to protect a live register, and it isn't really needed to do that. If we ever want the scheduler to start inserting copies in non-prohibitive situations, we'll have to rethink some things anyway. A Latency field is added. Instead of giving each node a single fixed latency, each edge can have its own latency. This will eventually be used to model various micro-architecture properties more accurately. The PointerIntPair class and an internal union are now used, which reduce the overall size. llvm-svn: 60806
-
Dan Gohman authored
llvm-svn: 60804
-
Bill Wendling authored
target-independent way of determining overflow on multiplication. It's very tricky. Patch by Zoltan Varga! llvm-svn: 60800
-
Duncan Sands authored
essential problem was that the DAG can contain random unused nodes which were never analyzed. When remapping a value of a node being processed, such a node may become used and need to be analyzed; however due to operands being transformed during analysis the node may morph into a different one. Users of the morphing node need to be updated, and this wasn't happening. While there I added a bunch of documentation and sanity checks, so I (or some other poor soul) won't have to scratch their head over this stuff so long trying to remember how it was all supposed to work next time some obscure problem pops up! The extra sanity checking exposed a few places where invariants weren't being preserved, so those are fixed too. Since some of the sanity checking is expensive, I added a flag to turn it on. It is also turned on when building with ENABLE_EXPENSIVE_CHECKS=1. llvm-svn: 60797
-
Evan Cheng authored
llvm-svn: 60771
-
Dan Gohman authored
llvm-svn: 60769
-
Mon P Wang authored
one of its operand. llvm-svn: 60749
-
Mon P Wang authored
Fix the shift amount when unrolling a vector shift into scalar shifts. Fix problem in getShuffleScalarElt where it assumes that the input of a bit convert must be a vector. llvm-svn: 60740
-
Dan Gohman authored
pipeline model. llvm-svn: 60733
-
- Dec 08, 2008
-
-
Dan Gohman authored
llvm-svn: 60707
-
Dan Gohman authored
and use it in x86 address mode folding. Also, make getRegForValue return 0 for illegal types even if it has a ValueMap for them, because Argument values are put in the ValueMap. This fixes PR3181. llvm-svn: 60696
-
Dan Gohman authored
llvm-svn: 60684
-
Dan Gohman authored
llvm-svn: 60683
-
- Dec 07, 2008
-
-
Owen Anderson authored
live interval updating. llvm-svn: 60652
-
- Dec 05, 2008
-
-
Evan Cheng authored
Reason #3 from 60595 doesn't hold true. If we can fold a PIC load from constpool into a use, the rewrite happens at time of spill (not in VirtRegMap). Later on, if the GlobalBaseReg is spilled, the spiller can see the use uses GlobalBaseReg and do the right thing. llvm-svn: 60596
-
Evan Cheng authored
llvm-svn: 60592
-
Dan Gohman authored
llvm-svn: 60586
-
Dan Gohman authored
changing the stack slots on an instruction, to keep them consistent with the actual memory addresses. llvm-svn: 60584
-
Dan Gohman authored
While they appear to provide a normal clobbering def, they don't in the case of the awkward IMPLICIT_DEF+INSERT_SUBREG idiom. It would be good to change INSERT_SUBREG; until then, this change allows post-regalloc scheduling to cope in a mildly conservative way. llvm-svn: 60583
-
- Dec 04, 2008
-
-
Owen Anderson authored
llvm-svn: 60553
-
Duncan Sands authored
number of bytes for types such as i1 which are not a multiple of 8 bits in length. llvm-svn: 60543
-
Dan Gohman authored
llvm-svn: 60525
-
Dan Gohman authored
llvm-svn: 60524
-
Dan Gohman authored
the main thing this covers is spills to distinct spill slots. llvm-svn: 60517
-
Dan Gohman authored
issues with subreg operands and tied operands. llvm-svn: 60510
-
- Dec 03, 2008
-
-
Dan Gohman authored
on PseudoSourceValue values. This also fixes a FIXME in lib/VMCode/AsmWriter.cpp. llvm-svn: 60507
-
Dan Gohman authored
llvm-svn: 60500
-
Dan Gohman authored
an area where eventually it would be good to use target-dependent information. llvm-svn: 60498
-
Dan Gohman authored
examining non-anti-dependence edges. llvm-svn: 60496
-
Dan Gohman authored
llvm-svn: 60495
-
Dan Gohman authored
parts, and add target-independent code to add/preserve MachineMemOperands. llvm-svn: 60488
-
Dan Gohman authored
llvm-svn: 60487
-
Duncan Sands authored
a new node if the node was actually remapped. llvm-svn: 60482
-
Rafael Espindola authored
Print a single parameter .file directive if we have an ELF target. llvm-svn: 60480
-
Dan Gohman authored
is set but mayLoad is not set. Fix all the problems this turned up. Change code to not use isSimpleLoad instead of mayLoad unless it really wants isSimpleLoad. llvm-svn: 60459
-
- Dec 02, 2008
-
-
Evan Cheng authored
1. ppcf128 select is expanded to f64 select's. 2. f64 select operand 0 is an i1 truncate, it's promoted to i32 zero_extend. 3. f64 select is updated. It's changed back to a "NewNode" and being re-analyzed. 4. f64 select operands are being processed. Operand 0 is a "NewNode". It's being expunged out of ReplacedValues map. 5. ExpungeNode tries to remap f64 select and notice it's a "NewNode" and assert. Duncan, please take a look. Thanks. llvm-svn: 60443
-
Scott Michel authored
consistent with the way it's generally done in other places. llvm-svn: 60439
-
Dan Gohman authored
llvm-svn: 60434
-