| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
same dead instruction.
llvm-svn: 95890
|
|
|
|
| |
llvm-svn: 95889
|
|
|
|
|
|
|
| |
Use SmallVector instead of std::vector for better speed when indirectbr has
few successors.
llvm-svn: 95879
|
|
|
|
| |
llvm-svn: 95871
|
|
|
|
| |
llvm-svn: 95840
|
|
|
|
|
|
| |
almost always comments afterwards that need printing.
llvm-svn: 95839
|
|
|
|
|
|
|
|
| |
Calling RemoveOperand is very expensive on huge PHI instructions. This makes
early tail duplication run twice as fast on the Firefox JavaScript
interpreter.
llvm-svn: 95832
|
|
|
|
|
|
|
|
|
| |
machine CFG.
This makes early tail duplication run 60 times faster when compiling the Firefox
JavaScript interpreter, see PR6186.
llvm-svn: 95831
|
|
|
|
|
|
|
|
|
|
|
| |
on custom
lowering and requires that certain types exist in ValueTypes.h. Modified widening to
check if an op can trap and if so, the widening algorithm will apply only the op on
the defined elements. It is safer to do this in widening because the optimizer can't
guarantee removing unused ops in some cases.
llvm-svn: 95823
|
|
|
|
| |
llvm-svn: 95819
|
|
|
|
|
|
|
|
|
| |
legalization even when the IR-level optimizer has removed dead phis, such
as when the high half of an i64 value is unused on a 32-bit target.
I had to adjust a few test cases that had dead phis.
This is a partial fix for Radar 7627077.
llvm-svn: 95816
|
|
|
|
| |
llvm-svn: 95814
|
|
|
|
|
|
| |
the pointer values could be invalid.
llvm-svn: 95813
|
|
|
|
|
|
| |
changed its behavior. Oops.
llvm-svn: 95811
|
|
|
|
|
|
| |
different word was intended.
llvm-svn: 95795
|
|
|
|
| |
llvm-svn: 95781
|
|
|
|
|
|
| |
leave some obvious nops which dag combine used to clean up afterwards e.g. (trunk (ext n)) -> n. Look for them and squash them.
llvm-svn: 95757
|
|
|
|
| |
llvm-svn: 95749
|
|
|
|
| |
llvm-svn: 95748
|
|
|
|
| |
llvm-svn: 95747
|
|
|
|
|
|
| |
rather than asserting.
llvm-svn: 95746
|
|
|
|
| |
llvm-svn: 95745
|
|
|
|
| |
llvm-svn: 95740
|
|
|
|
|
|
|
|
|
| |
register coalescing. This fixes many crashes and
places where debug info affects codegen (when
dbg.value is lowered to machine instructions, which
it isn't yet in TOT).
llvm-svn: 95739
|
|
|
|
|
|
|
|
|
|
|
|
| |
The major win of this is that the code is simpler and they
print on the same line as the instruction again:
movl %eax, 96(%esp) ## 4-byte Spill
movl 96(%esp), %eax ## 4-byte Reload
cmpl 92(%esp), %eax ## 4-byte Folded Reload
jl LBB7_86
llvm-svn: 95738
|
|
|
|
| |
llvm-svn: 95737
|
|
|
|
| |
llvm-svn: 95736
|
|
|
|
|
|
| |
the field from being used uninitialized later in some cases.
llvm-svn: 95735
|
|
|
|
|
|
| |
OutStreamer.AddBlankLine instead of textually.
llvm-svn: 95734
|
|
|
|
| |
llvm-svn: 95730
|
|
|
|
| |
llvm-svn: 95711
|
|
|
|
| |
llvm-svn: 95707
|
|
|
|
|
|
|
|
|
| |
into TargetOpcodes.h. #include the new TargetOpcodes.h
into MachineInstr. Add new inline accessors (like isPHI())
to MachineInstr, and start using them throughout the
codebase.
llvm-svn: 95687
|
|
|
|
|
|
| |
Patch by M Wahab!
llvm-svn: 95668
|
|
|
|
| |
llvm-svn: 95647
|
|
|
|
|
|
| |
the definition.
llvm-svn: 95646
|
|
|
|
|
|
| |
Previously spill registers, whose def indexes are not defined, would sometimes be improperly marked as coalescable with conflicting registers. The new findCoalesces routine conservatively assumes that any register with at least one undefined def is not coalescable with any register it interferes with.
llvm-svn: 95636
|
|
|
|
|
|
| |
memory access bug in the heuristic solver.
llvm-svn: 95633
|
|
|
|
|
|
|
| |
direct MCExpr equivalents. Don't use MCExpr::Shr because it isn't
consistent between targets.
llvm-svn: 95620
|
|
|
|
|
|
|
| |
MCSymbol, we can remove the 'suffix' argument of
GetBlockAddressSymbol. Do so.
llvm-svn: 95601
|
|
|
|
|
|
| |
expression; don't go into an infinite loop if it does.
llvm-svn: 95591
|
|
|
|
|
|
|
|
|
| |
in global initializers. Instead of aborting, attempt to fold them on the
spot. If folding succeeds, emit the folded expression instead.
This fixes PR6255.
llvm-svn: 95583
|
|
|
|
|
|
|
| |
we can get in here if FastISel gives up in a block.
(Actually the two copies of this need to be unified. Later.)
llvm-svn: 95579
|
|
|
|
|
|
| |
for blocks ending in "unreachable".
llvm-svn: 95565
|
|
|
|
|
|
|
|
|
| |
warns about this base class not having a virtual destructor, but since
this class has no virtual methods and neither it or the types derived
from it has a destructor, a protected trivial destructor will do (and
shuts cppcheck up) the trick without the cost of introducing a vtable.
llvm-svn: 95526
|
|
|
|
|
|
|
|
|
|
| |
only run for x86 with fastisel. I've found it being very effective in
eliminating some obvious dead code as result of formal parameter lowering
especially when tail call optimization eliminated the need for some of the loads
from fixed frame objects. It also shrinks a number of the tests. A couple of
tests no longer make sense and are now eliminated.
llvm-svn: 95493
|
|
|
|
| |
llvm-svn: 95488
|
|
|
|
|
|
|
| |
addresses in dbg.declare; ignore this for the
moment to prevent things from breaking.
llvm-svn: 95471
|
|
|
|
| |
llvm-svn: 95461
|
|
|
|
| |
llvm-svn: 95452
|