| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 82332
|
|
|
|
|
|
| |
update the code which was broken by this.
llvm-svn: 82327
|
|
|
|
|
|
| |
blocks and update CFG, it should also inform sdisel of the changes so the phi source operands will come from the right basic blocks.
llvm-svn: 82311
|
|
|
|
| |
llvm-svn: 82285
|
|
|
|
| |
llvm-svn: 82282
|
|
|
|
|
|
|
|
|
| |
into the __DATA section. At launch time, dyld has to update most of the section
to fix up the type info pointers. It's better to place it into the __TEXT
section and use pc-rel indirect pointer encodings. Similar to the personality
routine.
llvm-svn: 82274
|
|
|
|
|
|
|
|
| |
sdisel will use to properly complete phi nodes.
Not functionality change yet.
llvm-svn: 82273
|
|
|
|
|
|
| |
Overriding doFinalization is pretty lame.
llvm-svn: 82268
|
|
|
|
| |
llvm-svn: 82245
|
|
|
|
|
|
|
|
|
| |
e.g. pinning
variables to specified absolute address. Make use of this feature for MSP430.
This unbreaks PR4776.
llvm-svn: 82227
|
|
|
|
| |
llvm-svn: 82215
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
64-bit systems.
llvm-svn: 82180
|
|
|
|
|
|
| |
currently unused.
llvm-svn: 82157
|
|
|
|
| |
llvm-svn: 82150
|
|
|
|
| |
llvm-svn: 82127
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 82080
|
|
|
|
| |
llvm-svn: 82077
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
failures.
llvm-svn: 82040
|
|
|
|
| |
llvm-svn: 82038
|
|
|
|
|
|
| |
stuff common across all macho targets.
llvm-svn: 82018
|
|
|
|
| |
llvm-svn: 82012
|
|
|
|
|
|
| |
we have MCInstPrinter.
llvm-svn: 82006
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 81970
|
|
|
|
|
|
|
|
| |
one implementation into its one caller. This eliminates a totally
awesome and gratuitous hack where we casted a Function* to
GlobalVariable*.
llvm-svn: 81967
|
|
|
|
|
|
| |
it into all of its call sites and simplifying them.
llvm-svn: 81962
|
|
|
|
| |
llvm-svn: 81946
|
|
|
|
| |
llvm-svn: 81942
|
|
|
|
|
|
|
| |
move MachineFunctionInfo virtual method out of line to give it
a home.
llvm-svn: 81940
|
|
|
|
|
|
|
|
| |
cannot have different
SVOffsets.
llvm-svn: 81937
|
|
|
|
| |
llvm-svn: 81928
|
|
|
|
| |
llvm-svn: 81909
|
|
|
|
|
|
|
|
| |
the current alignment based
on the source value offset. This avoids increasing the size of mem nodes.
llvm-svn: 81897
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 81819
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
it splits them.
llvm-svn: 81815
|
|
|
|
|
|
|
| |
DAG Combiner to disambiguate chains for loads and stores of types which are
broken up by the Legalizer into smaller pieces.
llvm-svn: 81813
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 81755
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 81727
|
|
|
|
| |
llvm-svn: 81705
|
|
|
|
|
|
| |
has real information about linker private linkage.
llvm-svn: 81695
|
|
|
|
|
|
|
| |
now that printBasicBlockLabel is only used for starting
a MBB. This allows elimination of a bunch of arguments.
llvm-svn: 81684
|
|
|
|
|
|
| |
instead.
llvm-svn: 81677
|