| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
Move GetMBBSymbol up to AsmPrinter and make printBasicBlockLabel use it so that
we only have one place that decides what to name bb labels. Hopefully various
clients of printBasicBlockLabel can start using GetMBBSymbol instead.
llvm-svn: 81652
|
| |
|
|
| |
llvm-svn: 81605
|
| |
|
|
| |
llvm-svn: 81600
|
| |
|
|
| |
llvm-svn: 81598
|
| |
|
|
| |
llvm-svn: 81542
|
| |
|
|
|
|
|
|
|
| |
object, the timer it creates was not being deleted. Since the
timer belonged to a static timer group, the timer group would
be destroyed on shutdown, and would notice and complain that
not all timers it contained were destroyed.
llvm-svn: 81533
|
| |
|
|
| |
llvm-svn: 81493
|
| |
|
|
|
|
| |
isn't legal.
llvm-svn: 81492
|
| |
|
|
|
|
| |
post-decrement load/store.
llvm-svn: 81464
|
| |
|
|
| |
llvm-svn: 81454
|
| |
|
|
| |
llvm-svn: 81436
|
| |
|
|
|
|
|
|
| |
from the exception tables. However, Duncan explained why it's a can of worms to
do it the GCC way. I went back to doing it the LLVM way and added Duncan's
explanation so that I don't do this again in the future.
llvm-svn: 81434
|
| |
|
|
|
|
|
|
| |
like what GCC outputs. The mysterious code to insert padding wasn't in GCC at
all. I modified the TType base offset code to calculate the offset like GCC
does, though.
llvm-svn: 81424
|
| |
|
|
|
|
|
|
| |
code within it was the same inside and out. There's still a problem of the
TypeInfoSize should be the size of the TType format encoding (at least that's
what GCC thinks it should be).
llvm-svn: 81417
|
| |
|
|
| |
llvm-svn: 81415
|
| |
|
|
| |
llvm-svn: 81409
|
| |
|
|
|
|
| |
sizeof(DW_EH_PE_udata4).
llvm-svn: 81408
|
| |
|
|
| |
llvm-svn: 81406
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Basically, this patch is working towards removing the hard-coded values that are
output for the CIE. In particular, the CIE augmentation and the CIE augmentation
size. Both of these should be calculated. In the process, I was able to make a
bunch of code simpler.
The encodings for the personality, LSDA, and FDE in the CIE are still not
correct. They should be generated either from target-specific callbacks (blech!)
or grokked from first-principles.
llvm-svn: 81404
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
the MCInst path of the asmprinter. Instead, pull comment printing
out of the autogenerated asmprinter into each target that uses the
autogenerated asmprinter. This causes code duplication into each
target, but in a way that will be easier to clean up later when more
asmprinter stuff is commonized into the base AsmPrinter class.
This also fixes an xcore strangeness where it inserted two tabs
before every instruction.
llvm-svn: 81396
|
| |
|
|
| |
llvm-svn: 81382
|
| |
|
|
| |
llvm-svn: 81381
|
| |
|
|
| |
llvm-svn: 81380
|
| |
|
|
|
|
| |
require a LiveIntervals instance in future.
llvm-svn: 81374
|
| |
|
|
| |
llvm-svn: 81360
|
| |
|
|
| |
llvm-svn: 81343
|
| |
|
|
|
|
|
|
| |
to instructions instead of zero extended ones. This makes the asmprinter
print signed values more consistently. This apparently only really affects
the X86 backend.
llvm-svn: 81265
|
| |
|
|
|
|
|
|
| |
instruction to insert before can be end(). getDebugLoc on
end() returns an invalid value, therefore use the debug
loc of the call instruction, and give it to InsertLabel.
llvm-svn: 81207
|
| |
|
|
|
|
| |
Make sure the sub-register class matches the register class of the remat'ed instruction definition register class.
llvm-svn: 81204
|
| |
|
|
|
|
|
| |
null in the case of an empty struct, so don't try to call getNumValues
on it.
llvm-svn: 81180
|
| |
|
|
|
|
|
|
|
| |
from floating-point to integer first, and bitcast the result
back to floating-point. Previously, this test was passing by
falling back to SelectionDAG lowering. The resulting code isn't
as nice, but it's correct and CodeGen now stays on the fast path.
llvm-svn: 81171
|
| |
|
|
| |
llvm-svn: 81124
|
| |
|
|
|
|
| |
Patch by Erick Tryzelaar.
llvm-svn: 81116
|
| |
|
|
|
|
| |
about by icc (#593, partial). Patch by Erick Tryzelaar.
llvm-svn: 81115
|
| |
|
|
| |
llvm-svn: 81112
|
| |
|
|
|
|
| |
icc (#177, partial). Patch by Erick Tryzelaar.
llvm-svn: 81106
|