History log of /llvm-project/llvm/include/llvm/CodeGen/SelectionDAGNodes.h (Results 551 – 575 of 866)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# da457c80 21-Aug-2008 Dan Gohman <gohman@apple.com>

Fix a typo that Dale noticed.

llvm-svn: 55132


# c6337ac0 21-Aug-2008 Dan Gohman <gohman@apple.com>

Add libm-oriented ISD opcodes for rounding operations.

llvm-svn: 55130


# 82508106 21-Aug-2008 Dan Gohman <gohman@apple.com>

Make HandleSDNode::getValue return an SDValue instead of
the full SDUse, which isn't needed.

llvm-svn: 55121


# 2da2bedc 20-Aug-2008 Dan Gohman <gohman@apple.com>

Change the FoldingSetNodeID usage for objects which carry
alignment and volatility information, such as loads and
stores, to reduce the number of integer values added to
the FoldingSetNodeID.

llvm-s

Change the FoldingSetNodeID usage for objects which carry
alignment and volatility information, such as loads and
stores, to reduce the number of integer values added to
the FoldingSetNodeID.

llvm-svn: 55058

show more ...


# 44a15697 06-Aug-2008 Dan Gohman <gohman@apple.com>

Clarify "node" vs. "value" in some comments.

llvm-svn: 54409


# 0e5546fa 05-Aug-2008 Dan Gohman <gohman@apple.com>

Correct an assertion string.

llvm-svn: 54348


# 43105328 29-Jul-2008 Dan Gohman <gohman@apple.com>

Revert 54147.

llvm-svn: 54148


# 26ec56c7 28-Jul-2008 Dan Gohman <gohman@apple.com>

Add x86 isel patterns to match what would be a ZERO_EXTEND_INREG operation,
which is represented in codegen as an 'and' operation. This matches them
with movz instructions, instead of leaving them to

Add x86 isel patterns to match what would be a ZERO_EXTEND_INREG operation,
which is represented in codegen as an 'and' operation. This matches them
with movz instructions, instead of leaving them to be matched by and
instructions with an immediate field.

llvm-svn: 54147

show more ...


# 804c95df 28-Jul-2008 Dan Gohman <gohman@apple.com>

Fold the useful features of alist and alist_node into ilist, and
a new ilist_node class, and remove them. Unlike alist_node,
ilist_node doesn't attempt to manage storage itself, so it avoids
the asso

Fold the useful features of alist and alist_node into ilist, and
a new ilist_node class, and remove them. Unlike alist_node,
ilist_node doesn't attempt to manage storage itself, so it avoids
the associated problems, including being opaque in gdb.

Adjust the Recycler class so that it doesn't depend on alist_node.
Also, change it to use explicit Size and Align parameters, allowing
it to work when the largest-sized node doesn't have the greatest
alignment requirement.

Change MachineInstr's MachineMemOperand list from a pool-backed
alist to a std::list for now.

llvm-svn: 54146

show more ...


# 2ce6f2ad 27-Jul-2008 Dan Gohman <gohman@apple.com>

Rename SDOperand to SDValue.

llvm-svn: 54128


# 91e5dcb6 27-Jul-2008 Dan Gohman <gohman@apple.com>

Tidy SDNode::use_iterator, and complete the transition to have it
parallel its analogue, Value::value_use_iterator. The operator* method
now returns the user, rather than the use.

llvm-svn: 54127


# bb5f43ed 27-Jul-2008 Dan Gohman <gohman@apple.com>

Rename isOnlyUseOf to isOnlyUserOf.

llvm-svn: 54124


# b7a791b7 27-Jul-2008 Dan Gohman <gohman@apple.com>

Improve comments for SDNode use-count methods. No functionality change.

llvm-svn: 54123


# 17059681 17-Jul-2008 Dan Gohman <gohman@apple.com>

Add a new function, ReplaceAllUsesOfValuesWith, which handles bulk
replacement of multiple values. This is slightly more efficient
than doing multiple ReplaceAllUsesOfValueWith calls, and theoretical

Add a new function, ReplaceAllUsesOfValuesWith, which handles bulk
replacement of multiple values. This is slightly more efficient
than doing multiple ReplaceAllUsesOfValueWith calls, and theoretically
could be optimized even further. However, an important property of this
new function is that it handles the case where the source value set and
destination value set overlap. This makes it feasible for isel to use
SelectNodeTo in many very common cases, which is advantageous because
SelectNodeTo avoids a temporary node and it doesn't require CSEMap
updates for users of values that don't change position.

Revamp MorphNodeTo, which is what does all the work of SelectNodeTo, to
handle operand lists more efficiently, and to correctly handle a number
of corner cases to which its new wider use exposes it.

This commit also includes a change to the encoding of post-isel opcodes
in SDNodes; now instead of being sandwiched between the target-independent
pre-isel opcodes and the target-dependent pre-isel opcodes, post-isel
opcodes are now represented as negative values. This makes it possible
to test if an opcode is pre-isel or post-isel without having to know
the size of the current target's post-isel instruction set.

These changes speed up llc overall by 3% and reduce memory usage by 10%
on the InstructionCombining.cpp testcase with -fast and -regalloc=local.

llvm-svn: 53728

show more ...


# c20893b0 10-Jul-2008 Bill Wendling <isanbard@gmail.com>

Pull r53428 from Gaz into mainline:

Remove warnings about unused/shadowed variables.

llvm-svn: 53430


# f50b0a0c 10-Jul-2008 Dan Gohman <gohman@apple.com>

Add a SubclassData field to SDNode, similar to what's done
in Value, to make use of some otherwise unused space. Use this
field to shrink LoadSDNode and StoreSDNode by moving the
addressing mode and

Add a SubclassData field to SDNode, similar to what's done
in Value, to make use of some otherwise unused space. Use this
field to shrink LoadSDNode and StoreSDNode by moving the
addressing mode and ext/trunc fields there.

llvm-svn: 53422

show more ...


# 7d94c49d 09-Jul-2008 Dan Gohman <gohman@apple.com>

Simplify hasNUsesOfValue and hasAnyUsesOfValue even more. This
makes their special-case checks of use_size() less beneficial,
so remove them. This eliminates all but one use of use_size(),
which is i

Simplify hasNUsesOfValue and hasAnyUsesOfValue even more. This
makes their special-case checks of use_size() less beneficial,
so remove them. This eliminates all but one use of use_size(),
which is in AssignTopologicalOrder, which uses it only once for
each node, and so can reasonably afford to recompute it, as
this allows the UsesSize field of SDNode to be removed
altogether.

llvm-svn: 53377

show more ...


# db4504fa 09-Jul-2008 Dan Gohman <gohman@apple.com>

Move MemoryVT out of LSBaseNode into MemSDNode, allowing the
getMemOperand function to be moved into the base class as well
and made non-virtual.

llvm-svn: 53372


# 89e71d48 09-Jul-2008 Dan Gohman <gohman@apple.com>

Move the IsVolatile and SVOffset fields into the MemSDNode base
class, and store IsVolatile and Alignment in a more compact form.
This makes AtomicSDNode slightly larger, but it shrinks LoadSDNode
an

Move the IsVolatile and SVOffset fields into the MemSDNode base
class, and store IsVolatile and Alignment in a more compact form.
This makes AtomicSDNode slightly larger, but it shrinks LoadSDNode
and StoreSDNode, which are much more common and are the largest of
the SDNode subclasses. Also, this lets the isVolatile() and
getAlignment() accessors be non-virtual.

llvm-svn: 53361

show more ...


# 7f8b6d5f 07-Jul-2008 Dan Gohman <gohman@apple.com>

Pool-allocation for SDNodes. The pool is allocated once for each function,
and reused across SelectionDAGs.

This drastically reduces the number of calls to malloc/free made during
instruction select

Pool-allocation for SDNodes. The pool is allocated once for each function,
and reused across SelectionDAGs.

This drastically reduces the number of calls to malloc/free made during
instruction selection, and improves memory locality.

llvm-svn: 53211

show more ...


# 91697639 07-Jul-2008 Dan Gohman <gohman@apple.com>

Fix SDNode::MorphNodeTo (a function used by by SelectNodeTo) to
properly track dead nodes that are on the original SDNode's operand
list but not the new one, and have no other uses.

llvm-svn: 53201


# 768f2c92 07-Jul-2008 Dan Gohman <gohman@apple.com>

Remove most of the uses of SDOperandPtr, usually replacing it with a
simple const SDOperand*, which is what's usually needed.

For AddNodeIDOperands, which is small, just duplicate the function to
ac

Remove most of the uses of SDOperandPtr, usually replacing it with a
simple const SDOperand*, which is what's usually needed.

For AddNodeIDOperands, which is small, just duplicate the function to
accept an SDUse*.

For SelectionDAG::getNode - Add an overload that accepts SDUse* that
copies the operands into a temporary SDOperand array, but also has
special-case checks for 0 through 3 operands to avoid the copy in
the common cases.

llvm-svn: 53183

show more ...


# 2fa6cf5c 07-Jul-2008 Duncan Sands <baldrick@free.fr>

LegalizeTypes soft-float support for stores of a
float value.

llvm-svn: 53165


# fb19f940 01-Jul-2008 Dan Gohman <gohman@apple.com>

Split ISD::LABEL into ISD::DBG_LABEL and ISD::EH_LABEL, eliminating
the need for a flavor operand, and add a new SDNode subclass,
LabelSDNode, for use with them to eliminate the need for a label id
o

Split ISD::LABEL into ISD::DBG_LABEL and ISD::EH_LABEL, eliminating
the need for a flavor operand, and add a new SDNode subclass,
LabelSDNode, for use with them to eliminate the need for a label id
operand.

Change instruction selection to let these label nodes through
unmodified instead of creating copies of them. Teach the MachineInstr
emitter how to emit a MachineInstr directly from an ISD label node.

This avoids the need for allocating SDNodes for the label id and
flavor value, as well as SDNodes for each of the post-isel label,
label id, and label flavor.

llvm-svn: 52943

show more ...


# 5c73a886 30-Jun-2008 Dan Gohman <gohman@apple.com>

Rename ISD::LOCATION to ISD::DBG_STOPPOINT to better reflect its
purpose, and give it a custom SDNode subclass so that it doesn't
need to have line number, column number, filename string, and
directo

Rename ISD::LOCATION to ISD::DBG_STOPPOINT to better reflect its
purpose, and give it a custom SDNode subclass so that it doesn't
need to have line number, column number, filename string, and
directory string, all existing as individual SDNodes to be the
operands.

This was the only user of ISD::STRING, StringSDNode, etc., so
remove those and some associated code.

This makes stop-points considerably easier to read in
-view-legalize-dags output, and reduces overhead (creating new
nodes and copying std::strings into them) on code containing
debugging information.

llvm-svn: 52924

show more ...


1...<<21222324252627282930>>...35