| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 46962
|
| |
|
|
| |
llvm-svn: 46961
|
| |
|
|
|
|
|
|
|
|
| |
Added member template "Add" to FoldingSetNodeID that allows "adding" arbitrary
objects to a profile via dispatch to FoldingSetTrait<T>::Profile().
Removed FoldingSetNodeID::AddAPFloat and FoldingSetNodeID::APInt, as their
functionality is now replaced using the above mentioned member template.
llvm-svn: 46957
|
| |
|
|
| |
llvm-svn: 46954
|
| |
|
|
|
|
| |
rather than trying to undo the kill marker afterwards.
llvm-svn: 46953
|
| |
|
|
| |
llvm-svn: 46930
|
| |
|
|
| |
llvm-svn: 46926
|
| |
|
|
|
|
| |
no-op).
llvm-svn: 46922
|
| |
|
|
| |
llvm-svn: 46918
|
| |
|
|
| |
llvm-svn: 46903
|
| |
|
|
|
|
| |
begin adding some methods to use it this way.
llvm-svn: 46899
|
| |
|
|
| |
llvm-svn: 46896
|
| |
|
|
| |
llvm-svn: 46895
|
| |
|
|
| |
llvm-svn: 46876
|
| |
|
|
|
|
| |
Schurig.
llvm-svn: 46861
|
| |
|
|
|
|
|
| |
to return pointers instead of references, since this is always what
is needed.
llvm-svn: 46857
|
| |
|
|
|
|
|
| |
as <unknown>. And make some minor adjustments to the MemOperand
dump format.
llvm-svn: 46853
|
| |
|
|
| |
llvm-svn: 46848
|
| |
|
|
|
|
|
|
| |
initializer problem, a minor tweak to the way the
DAGISelEmitter finds load/store nodes, and a renaming of the
new PseudoSourceValue objects.
llvm-svn: 46827
|
| |
|
|
| |
llvm-svn: 46821
|
| |
|
|
|
|
| |
followed by TwoAddress which requires LiveVariables. We cannot run LiveVariables on non-SSA code.
llvm-svn: 46813
|
| |
|
|
| |
llvm-svn: 46776
|
| |
|
|
|
|
| |
visited earlier, then it is not killed in the def block (i.e. not dead).
llvm-svn: 46763
|
| |
|
|
| |
llvm-svn: 46725
|
| |
|
|
|
|
| |
we are recording variable information at isel time this means parameters would appear in the reverse order. The short term fix is to issue recordVariable() at asm printing time instead.
llvm-svn: 46724
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ReadyToProcess node - add an assertion to check
this. Add an assertion to NodeDeleted that checks
that processed/ready nodes are indeed not deleted.
It is because they are never deleted that none of
the maps can have a deleted node as the source of
a mapping. It does however seem to be possible in
theory to have a deleted value as the target of a
mapping, however this has not yet been spotted in
the wild. Still mulling on what to do about this.
[The theoretical situation is this: a node A is
expanded/promoted/whatever to a newly created node
B. Thus A->B is added to a map. When the subtree
rooted at B is legalized it is conceivable that B
is deleted due to RAUW on a node somewhere above
it].
llvm-svn: 46705
|
| |
|
|
| |
llvm-svn: 46682
|
| |
|
|
|
|
| |
multiple times due to a RAUW.
llvm-svn: 46680
|
| |
|
|
|
|
|
|
| |
keep the LegalizeTypes node flags up to date when doing a RAUW.
This fixes a nasty bug that Duncan ran into and makes the
previous (nonbuggy case) more efficent.
llvm-svn: 46679
|
| |
|
|
| |
llvm-svn: 46678
|
| |
|
|
|
|
|
|
|
|
| |
DAGUpdateListener object pointer instead of just returning a vector
of deleted nodes. This makes the interfaces more efficient (no more
allocating a vector [at least a malloc], filling it in, then walking
it) and more clean. This also allows the client to be notified of
nodes that are *changed* but not deleted.
llvm-svn: 46677
|
| |
|
|
|
|
|
|
|
| |
SelectionDAG::ReplaceAllUsesWith to handle replacement of
an SDOperand with *any* sdoperand, not just one for a node with
a single result. Note that this has a horrible FIXME'd hack in it
to work around PR1975. This should be removed when PR1975 is fixed.
llvm-svn: 46674
|
| |
|
|
|
|
| |
legalize types.
llvm-svn: 46672
|
| |
|
|
| |
llvm-svn: 46667
|
| |
|
|
|
|
|
|
|
| |
information descriptor and its corresponding stack frame index in MachineModuleInfo. This only works if the local variable is "homed" in the stack frame. It does not work for byval parameter, etc.
Added ISD::DECLARE node type to represent llvm.dbg.declare intrinsic. Now the intrinsic calls are lowered into a SDNode and lives on through out the codegen passes.
For now, since all the debugging information recording is done at isel time, when a ISD::DECLARE node is selected, it has the side effect of also recording the variable. This is a short term solution that should be fixed in time.
llvm-svn: 46659
|
| |
|
|
|
|
| |
llvm.dbg.func.start implies a stoppoint is set. SelectionDAGISel records a new source line but does not create a ISD::LABEL node for this special stoppoint. Asm printer will magically print this label. This ensures nothing is emitted before.
llvm-svn: 46635
|
| |
|
|
| |
llvm-svn: 46628
|
| |
|
|
|
|
| |
re-commit.
llvm-svn: 46623
|
| |
|
|
| |
llvm-svn: 46610
|
| |
|
|
|
|
| |
or misc labels. This fixes the EH breakage. However I am not convinced this is *the* solution.
llvm-svn: 46609
|
| |
|
|
| |
llvm-svn: 46605
|
| |
|
|
|
|
|
|
| |
calculate the offset from frame pointer to a stack slot and then storing the delta in a MachineLocation object. The name is bad (it implies a getter), and MRegisterInfo doesn't need to know about MachineLocation.
Replace getLocation() with getFrameIndexOffset() which returns the delta from frame pointer to stack slot. Dwarf writer can then use the information for whatever it wants.
llvm-svn: 46597
|
| |
|
|
|
|
| |
with the real FLT_ROUNDS (defined in <float.h>).
llvm-svn: 46587
|
| |
|
|
| |
llvm-svn: 46586
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in the backend. Introduce a new SDNode type, MemOperandSDNode, for
holding a MemOperand in the SelectionDAG IR, and add a MemOperand
list to MachineInstr, and code to manage them. Remove the offset
field from SrcValueSDNode; uses of SrcValueSDNode that were using
it are all all using MemOperandSDNode now.
Also, begin updating some getLoad and getStore calls to use the
PseudoSourceValue objects.
Most of this was written by Florian Brander, some
reorganization and updating to TOT by me.
llvm-svn: 46585
|
| |
|
|
|
|
| |
val# with previous liverange's.
llvm-svn: 46579
|
| |
|
|
|
|
|
|
|
|
| |
dbg_func_start label. Make sure nothing else is inserted before them.
Note this solution might be somewhat fragile since ISD::LABEL may be used for other
purposes. If that ends up to be an issue, we may need to introduce a different node
for debug labels.
llvm-svn: 46571
|
| |
|
|
| |
llvm-svn: 46569
|
| |
|
|
|
|
| |
label (i.e. first label in the entry block) take care to insert it at the beginning of the block.
llvm-svn: 46568
|
| |
|
|
|
|
| |
legitimate way of representing global variable GV in debug info.
llvm-svn: 46565
|