| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
understanding CannotYTetSelect and other errors easier.
llvm-svn: 93901
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 93487
|
| |
|
|
| |
llvm-svn: 93228
|
| |
|
|
|
|
|
|
| |
BRCOND was constant folded.
This fixes PR5980.
llvm-svn: 93184
|
| |
|
|
|
|
| |
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
|
| |
|
|
| |
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
|
| |
|
|
|
|
| |
dereference the type pointer.
llvm-svn: 92726
|
| |
|
|
| |
llvm-svn: 92597
|
| |
|
|
|
|
|
|
|
| |
clear what information these functions are actually using.
This is also a micro-optimization, as passing a SDNode * around is
simpler than passing a { SDNode *, int } by value or reference.
llvm-svn: 92564
|
| |
|
|
|
|
|
|
| |
getMDKindID/getMDKindNames methods to LLVMContext (and add
convenience methods to Module), eliminating MetadataContext.
Move the state that it maintains out to LLVMContext.
llvm-svn: 92259
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I asked Devang to do back on Sep 27. Instead of going through the
MetadataContext class with methods like getMD() and getMDs(), just
ask the instruction directly for its metadata with getMetadata()
and getAllMetadata().
This includes a variety of other fixes and improvements: previously
all Value*'s were bloated because the HasMetadata bit was thrown into
value, adding a 9th bit to a byte. Now this is properly sunk down to
the Instruction class (the only place where it makes sense) and it
will be folded away somewhere soon.
This also fixes some confusion in getMDs and its clients about
whether the returned list is indexed by the MDID or densely packed.
This is now returned sorted and densely packed and the comments make
this clear.
This introduces a number of fixme's which I'll follow up on.
llvm-svn: 92235
|
| |
|
|
|
|
|
| |
doesn't exist already, eliminate registerMDKind. Tidy up a bunch
of random stuff.
llvm-svn: 92225
|
| |
|
|
| |
llvm-svn: 92190
|
| |
|
|
|
|
| |
Patch by Sylve`re Teissier (sorry, ASCII only).
llvm-svn: 91988
|
| |
|
|
|
|
| |
Bill for spotting this!
llvm-svn: 91355
|
| |
|
|
| |
llvm-svn: 90669
|
| |
|
|
| |
llvm-svn: 90668
|
| |
|
|
| |
llvm-svn: 90637
|
| |
|
|
|
|
| |
instead of SelectionDAGISel.cpp.
llvm-svn: 90636
|
| |
|
|
|
|
|
| |
and that Instruction only. Implement this by setting the "current debug position"
back to Unknown after processing each instruction.
llvm-svn: 90632
|
| |
|
|
|
|
| |
Patch by Howard Hinnant!
llvm-svn: 90365
|
| |
|
|
| |
llvm-svn: 89683
|
| |
|
|
|
|
| |
SelectionDAGBuild.cpp to SelectionDAGBuilder.cpp.
llvm-svn: 89681
|
| |
|
|
|
|
|
| |
of SelectionDAGBuild.h/cpp into its own files, to help separate
general lowering logic from SelectionDAG-specific lowering logic.
llvm-svn: 89667
|
| |
|
|
|
|
| |
tail call has been encountered.
llvm-svn: 89444
|
| |
|
|
| |
llvm-svn: 86748
|
| |
|
|
| |
llvm-svn: 86522
|
| |
|
|
|
|
| |
*ISelDAGToDAG.cpp to being regular code in SelectionDAGISel.cpp.
llvm-svn: 85530
|
| |
|
|
|
|
|
|
| |
bunch of associated comments, because it doesn't have anything to do
with DAGs or scheduling. This is another step in decoupling MachineInstr
emitting from scheduling.
llvm-svn: 85517
|
| |
|
|
|
|
| |
thread safe either.
llvm-svn: 85253
|
| |
|
|
| |
llvm-svn: 84247
|
| |
|
|
| |
llvm-svn: 83921
|
| |
|
|
|
|
| |
This code is not yet enabled.
llvm-svn: 83349
|
| |
|
|
| |
llvm-svn: 83100
|
| |
|
|
| |
llvm-svn: 83019
|
| |
|
|
| |
llvm-svn: 83016
|
| |
|
|
| |
llvm-svn: 82355
|
| |
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
sdisel will use to properly complete phi nodes.
Not functionality change yet.
llvm-svn: 82273
|
| |
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 82080
|
| |
|
|
| |
llvm-svn: 82077
|
| |
|
|
| |
llvm-svn: 79834
|
| |
|
|
| |
llvm-svn: 79832
|
| |
|
|
| |
llvm-svn: 78948
|