| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
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.
llvm-svn: 93504
|
| |
|
|
| |
llvm-svn: 93487
|
| |
|
|
| |
llvm-svn: 93417
|
| |
|
|
| |
llvm-svn: 93228
|
| |
|
|
| |
llvm-svn: 93227
|
| |
|
|
|
|
|
|
| |
BRCOND was constant folded.
This fixes PR5980.
llvm-svn: 93184
|
| |
|
|
|
|
|
|
| |
then a load if the
loads are not in the default address space because the transformation discards src value info.
llvm-svn: 93180
|
| |
|
|
|
|
|
|
|
|
| |
really does need to be a vector type, because
TargetLowering::getOperationAction for SIGN_EXTEND_INREG uses that type,
and it needs to be able to distinguish between vectors and scalars.
Also, fix some more issues with legalization of vector casts.
llvm-svn: 93043
|
| |
|
|
|
|
| |
ISD::DELETED_NODE is not safe. Use a DAGUpdateListener to remove dead nodes from work list instead.
llvm-svn: 93031
|
| |
|
|
|
|
| |
replaced. Do not delete dead nodes again.
llvm-svn: 92988
|
| |
|
|
|
|
|
|
|
|
| |
When folding a and(any_ext(load)) both the any_ext and the
load have to have only a single use.
This removes the anyext-uses.ll testcase which started failing
because it is unreduced and unclear what it is testing.
llvm-svn: 92950
|
| |
|
|
|
|
| |
time, no functionality change.
llvm-svn: 92948
|
| |
|
|
| |
llvm-svn: 92943
|
| |
|
|
| |
llvm-svn: 92918
|
| |
|
|
| |
llvm-svn: 92850
|
| |
|
|
|
|
|
|
|
|
| |
(OP (trunc x), (trunc y)) -> (trunc (OP x, y))
Unfortunately this simple change causes dag combine to infinite looping. The problem is the shrink demanded ops optimization tend to canonicalize expressions in the opposite manner. That is badness. This patch disable those optimizations in dag combine but instead it is done as a late pass in sdisel.
This also exposes some deficiencies in dag combine and x86 setcc / brcond lowering. Teach them to look pass ISD::TRUNCATE in various places.
llvm-svn: 92849
|
| |
|
|
|
|
| |
order.
llvm-svn: 92810
|
| |
|
|
| |
llvm-svn: 92807
|
| |
|
|
|
|
| |
bottom-up scheduler. We prefer the lower order number.
llvm-svn: 92806
|
| |
|
|
|
|
| |
result in illegal types for the SHL operator.
llvm-svn: 92797
|
| |
|
|
|
|
|
| |
uses several kinds of opcode values which are not declared within
that enum. This fixes PR5946.
llvm-svn: 92794
|
| |
|
|
|
|
| |
dereference the type pointer.
llvm-svn: 92726
|
| |
|
|
|
|
|
|
|
| |
Intrinsic::dbg_stoppoint
Intrinsic::dbg_region_start
Intrinsic::dbg_region_end
Intrinsic::dbg_func_start
llvm-svn: 92672
|
| |
|
|
| |
llvm-svn: 92597
|
| |
|
|
| |
llvm-svn: 92581
|
| |
|
|
| |
llvm-svn: 92580
|