- Sep 18, 2009
-
-
Evan Cheng authored
Enhance EmitInstrWithCustomInserter() so target can specify CFG changes that sdisel will use to properly complete phi nodes. Not functionality change yet. llvm-svn: 82273
-
Chris Lattner authored
Overriding doFinalization is pretty lame. llvm-svn: 82268
-
Chris Lattner authored
llvm-svn: 82245
-
Anton Korobeynikov authored
variables to specified absolute address. Make use of this feature for MSP430. This unbreaks PR4776. llvm-svn: 82227
-
Evan Cheng authored
llvm-svn: 82215
-
Evan Cheng authored
Fix a bug in sdisel switch lowering code. When it updates the phi nodes in switch successor blocks, it can introduce multiple phi operands of the same value from different blocks (and may not be on the predecessor list). This can be seen on CodeGen/Generic/2006-09-06-SwitchLowering.ll. But it's not known to cause any real regression (but I have added an assertion for it now). llvm-svn: 82214
-
Chris Lattner authored
64-bit systems. llvm-svn: 82180
-
- Sep 17, 2009
-
-
Chris Lattner authored
currently unused. llvm-svn: 82157
-
Jim Grosbach authored
llvm-svn: 82150
-
Evan Cheng authored
llvm-svn: 82127
-
Evan Cheng authored
Fix PR4910: Broken logic in coalescer means when a physical register liveness is being shortened, the sub-registers were not. The symptom is the register allocator could not find a free register for this particular test. llvm-svn: 82108
-
- Sep 16, 2009
-
-
Devang Patel authored
llvm-svn: 82080
-
Devang Patel authored
llvm-svn: 82077
-
Dan Gohman authored
constants out of loops. These aren't covered by the regular LICM pass, because in LLVM IR constants don't require separate instructions. They're not always covered by the MachineLICM pass either, because it doesn't know how to unfold folded constant-pool loads. This is somewhat experimental at this point, and off by default. llvm-svn: 82076
-
Benjamin Kramer authored
failures. llvm-svn: 82040
-
Xerxes Ranby authored
llvm-svn: 82038
-
Chris Lattner authored
stuff common across all macho targets. llvm-svn: 82018
-
Chris Lattner authored
llvm-svn: 82012
-
Chris Lattner authored
we have MCInstPrinter. llvm-svn: 82006
-
Chris Lattner authored
Eliminate the PersonalityPrefix/Suffix & NeedsIndirectEncoding fields from MAI: they aren't part of the asm syntax, they are related to the structure of the object file. To replace their functionality, add a new TLOF::getSymbolForDwarfGlobalReference method which asks targets to decide how to reference a global from EH in a pc-relative way. The default implementation just returns the symbol. The default darwin implementation references the symbol through an indirect $non_lazy_ptr stub. The bizarro x86-64 darwin specialization handles the weird "foo@GOTPCREL+4" hack. DwarfException.cpp now uses this to emit the reference to the symbol in the right way, and this also eliminates another horrible hack from DwarfException.cpp: - if (strcmp(MAI->getPersonalitySuffix(), "+4@GOTPCREL")) - O << "-" << MAI->getPCSymbol(); llvm-svn: 81991
-
Chris Lattner authored
llvm-svn: 81970
-
Chris Lattner authored
one implementation into its one caller. This eliminates a totally awesome and gratuitous hack where we casted a Function* to GlobalVariable*. llvm-svn: 81967
-
Chris Lattner authored
it into all of its call sites and simplifying them. llvm-svn: 81962
-
Chris Lattner authored
llvm-svn: 81946
-
Chris Lattner authored
llvm-svn: 81942
-
Chris Lattner authored
move MachineFunctionInfo virtual method out of line to give it a home. llvm-svn: 81940
-
Nate Begeman authored
SVOffsets. llvm-svn: 81937
-
- Sep 15, 2009
-
-
Eric Christopher authored
llvm-svn: 81928
-
Daniel Dunbar authored
llvm-svn: 81909
-
Nate Begeman authored
Better solution for tracking both the original alignment of the access, and the current alignment based on the source value offset. This avoids increasing the size of mem nodes. llvm-svn: 81897
-
Evan Cheng authored
Another try at early partial coalescing. Identity phi source copies (their sources are defined by phi join def) are coalesced. And the phi join copy is backward copy propagated into the other copies. Still miscompiling some tests. :-( llvm-svn: 81849
-
Nate Begeman authored
llvm-svn: 81819
-
Nate Begeman authored
1. Switch from an std::set to a SmallPtrSet for visited chain nodes. 2. Do not force the recursive flattening of token factor nodes, regardless of use count. 3. Immediately process newly created TokenFactor nodes. Also, improve combiner-aa by teaching it that loads to non-overlapping offsets of relatively aligned objects cannot alias. These changes result in a >5x speedup for combiner-aa on most testcases. llvm-svn: 81816
-
Nate Begeman authored
it splits them. llvm-svn: 81815
-
Nate Begeman authored
DAG Combiner to disambiguate chains for loads and stores of types which are broken up by the Legalizer into smaller pieces. llvm-svn: 81813
-
- Sep 14, 2009
-
-
Evan Cheng authored
Add early coalescing to liveintervals. This is work in progress and is known to miscompute some tests. Read it at your own rish, I have aged 10 year while writing this. The gist of this is if source of some of the copies that feed into a phi join is defined by the phi join, we'd like to eliminate them. However, if any of the non-identity source overlaps the live interval of the phi join then the coalescer won't be able to coalesce them. The early coalescer's job is to eliminate the identity copies by partially-coalescing the two live intervals. llvm-svn: 81796
-
Bill Wendling authored
created once, so shouldn't be stuck in the middle of the loop. Also early exit if there are no uses of UnwindInst in the function. llvm-svn: 81785
-
Chris Lattner authored
llvm-svn: 81755
-
Chris Lattner authored
full AsmPrinter, and change TargetRegistry to keep track of registered MCInstPrinters. llvm-mc is still linking in the entire target foo to get the code emitter stuff, but this is an important step in the right direction. llvm-svn: 81754
-
Chris Lattner authored
llvm-svn: 81727
-