| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 95730
|
| |
|
|
| |
llvm-svn: 95711
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
addresses in dbg.declare; ignore this for the
moment to prevent things from breaking.
llvm-svn: 95471
|
| |
|
|
|
|
|
|
| |
predecessors to the unfolded load. It decides what gets moved to the load by checking whether the new load is using the predecessor as an operand. The check neglects the cases whether the predecessor is a flagged scheduling unit.
rdar://7604000
llvm-svn: 95339
|
| |
|
|
| |
llvm-svn: 95322
|
| |
|
|
|
|
| |
optimization even if the caller / callee attributes completely match. The callee may have been bitcast'ed (or otherwise lied about what it's doing).
llvm-svn: 95282
|
| |
|
|
| |
llvm-svn: 95198
|
| |
|
|
|
|
| |
if the callee is a result of bitcast to avoid losing necessary zext / sext etc.
llvm-svn: 95195
|
| |
|
|
| |
llvm-svn: 95160
|
| |
|
|
|
|
| |
sibcall eligibility.
llvm-svn: 95130
|
| |
|
|
| |
llvm-svn: 95012
|
| |
|
|
| |
llvm-svn: 95001
|
| |
|
|
| |
llvm-svn: 94996
|
| |
|
|
|
|
|
|
| |
type is the same as the element type of the vector. EXTRACT_VECTOR_ELT can
be used to extended the width of an integer type. This fixes a bug for
Generic/vector-casts.ll on a ppc750.
llvm-svn: 94990
|
| |
|
|
| |
llvm-svn: 94805
|
| |
|
|
|
|
|
| |
"visit*" method is called, take the newly created nodes, walk them in a DFS
fashion, and if they don't have an ordering set, then give it one.
llvm-svn: 94757
|
| |
|
|
|
|
|
| |
This allows code gen and the exception table writer to cooperate to make sure
landing pads are associated with the correct invoke locations.
llvm-svn: 94726
|
| |
|
|
|
|
|
|
|
| |
Target independent isel should always pass along the "tail call" property. Change
target hook LowerCall's parameter "isTailCall" into a refernce. If the target
decides it's impossible to honor the tail call request, it should set isTailCall
to false to make target independent isel happy.
llvm-svn: 94626
|
| |
|
|
| |
llvm-svn: 94611
|
| |
|
|
|
|
|
| |
subsumed by TargetLowering::getJumpTableEncoding(). Change uses of
it to be more specific.
llvm-svn: 94529
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
which is more convenient, and change getPICJumpTableRelocBaseExpr
to take a MachineFunction to match.
Next, move the X86 code that create a PICBase symbol to
X86TargetLowering::getPICBaseSymbol from
X86MCInstLower::GetPICBaseSymbol, which was an asmprinter specific
library. This eliminates a 'gross hack', and allows us to
implement X86ISelLowering::getPICJumpTableRelocBaseExpr which now
calls it.
This in turn allows us to eliminate the
X86AsmPrinter::printPICJumpTableSetLabel method, which was the
only overload of printPICJumpTableSetLabel.
llvm-svn: 94526
|
| |
|
|
|
|
| |
use it to implement the default TargetLowering::getPICJumpTableRelocBaseExpr
llvm-svn: 94523
|
| |
|
|
|
|
| |
implement it.
llvm-svn: 94521
|
| |
|
|
| |
llvm-svn: 94490
|
| |
|
|
|
|
|
| |
dbg.declare's we currently generate go through both
register allocators without perturbing the results.
llvm-svn: 94480
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. MachineJumpTableInfo is now created lazily for a function the first time
it actually makes a jump table instead of for every function.
2. The encoding of jump table entries is now described by the
MachineJumpTableInfo::JTEntryKind enum. This enum is determined by the
TLI::getJumpTableEncoding() hook, instead of by lots of code scattered
throughout the compiler that "knows" that jump table entries are always
32-bits in pic mode (for example).
3. The size and alignment of jump table entries is now calculated based on
their kind, instead of at machinefunction creation time.
Future work includes using the EntryKind in more places in the compiler,
eliminating other logic that "knows" the layout of jump tables in various
situations.
llvm-svn: 94470
|
| |
|
|
| |
llvm-svn: 94378
|
| |
|
|
|
|
| |
Add support to widen SETCC.
llvm-svn: 94342
|
| |
|
|
|
|
|
| |
the alignment allows. Fixed a bug where we didn't use a
vector load/store for PR5626.
llvm-svn: 94338
|
| |
|
|
|
|
|
|
|
| |
the '-pre-RA-sched' flag. It actually makes more sense to do it this way. Also,
keep track of the SDNode ordering by default. Eventually, we would like to make
this ordering a way to break a "tie" in the scheduler. However, doing that now
breaks the "CodeGen/X86/abi-isel.ll" test for 32-bit Linux.
llvm-svn: 94308
|
| |
|
|
| |
llvm-svn: 94255
|
| |
|
|
|
|
|
|
|
|
|
| |
missing ones are libsupport, libsystem and libvmcore. libvmcore is
currently blocked on bugpoint, which uses EH. Once it stops using
EH, we can switch it off.
This #if 0's out 3 unit tests, because gtest requires RTTI information.
Suggestions welcome on how to fix this.
llvm-svn: 94164
|
| |
|
|
|
|
| |
improve cache locality. This is controlled by -cluster-loads for now.
llvm-svn: 94148
|
| |
|
|
| |
llvm-svn: 94105
|
| |
|
|
| |
llvm-svn: 94097
|
| |
|
|
|
|
| |
order for SjLj style exception handling.
llvm-svn: 94055
|
| |
|
|
|
|
|
| |
points. This will help us find future problems like the one
described in PR6019.
llvm-svn: 94019
|
| |
|
|
| |
llvm-svn: 93960
|
| |
|
|
|
|
| |
that SCEVExpander can produce when running on behalf of LSR.
llvm-svn: 93949
|
| |
|
|
|
|
| |
understanding CannotYTetSelect and other errors easier.
llvm-svn: 93901
|
| |
|
|
| |
llvm-svn: 93818
|
| |
|
|
|
|
|
|
|
| |
comments (fast isel, X86). This doesn't seem
to break any functionality, but will introduce
cases where -g affects the generated code. I'll
be fixing that.
llvm-svn: 93811
|
| |
|
|
|
|
|
|
|
|
| |
Instcombine does this but apparently there are situations where this pattern will escape the optimizer and / or created by isel. Here is a case that's seen in JavaScriptCore:
%t1 = sub i32 0, %a
%t2 = add i32 %t1, -1
The dag combiner pattern: ((c1-A)+c2) -> (c1+c2)-A
will fold it to -1 - %a.
llvm-svn: 93773
|
| |
|
|
|
|
| |
the return value of an sret-demoted call, it needs to use possibly illegal types that match the declared Type of the callee.
llvm-svn: 93667
|
| |
|
|
|
|
|
|
|
|
|
| |
print/dumpWithDepth allows one to dump a DAG up to N levels deep.
dump/printWithFullDepth prints the whole DAG, subject to a depth limit
on 100 in the default case (to prevent infinite recursion).
Have CannotYetSelect to a dumpWithFullDepth so it is clearer exactly
what the non-matching DAG looks like.
llvm-svn: 93538
|
| |
|
|
|
|
|
|
|
| |
its first argument, via function-local metadata (instead of via a bitcast).
This patch also cleans up code that expects there to be a bitcast in the first argument and testcases that call llvm.dbg.declare.
It also strips old llvm.dbg.declare intrinsics that did not pass metadata as the first argument.
llvm-svn: 93531
|
| |
|
|
|
|
| |
auto-upgraded
llvm-svn: 93515
|