History log of /llvm-project/llvm/include/llvm/CodeGen/SelectionDAGNodes.h (Results 526 – 550 of 866)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-2.4.0
# 2d636b52 07-Nov-2008 Duncan Sands <baldrick@free.fr>

Sign-extend rather than zero-extend when promoting
the condition for a BRCOND, according to what is
returned by getSetCCResultContents. Since all
targets return the same thing (ZeroOrOneSetCCResult)

Sign-extend rather than zero-extend when promoting
the condition for a BRCOND, according to what is
returned by getSetCCResultContents. Since all
targets return the same thing (ZeroOrOneSetCCResult),
this should be harmless! The point is that all over
the place the result of SETCC is fed directly into
BRCOND. On machines for which getSetCCResultContents
returns ZeroOrNegativeOneSetCCResult, this is a
sign-extended boolean. So it seems dangerous to
also feed BRCOND zero-extended booleans in some
circumstances - for example, when promoting the
condition.

llvm-svn: 58861

show more ...


# a1a388ca 22-Oct-2008 Duncan Sands <baldrick@free.fr>

Add some comments explaining the meaning of a boolean
that is not of type MVT::i1 in SELECT and SETCC nodes.
Relax the LegalizeTypes SELECT condition promotion
sanity checks to allow other condition

Add some comments explaining the meaning of a boolean
that is not of type MVT::i1 in SELECT and SETCC nodes.
Relax the LegalizeTypes SELECT condition promotion
sanity checks to allow other condition types than i1.

llvm-svn: 57966

show more ...


# 82860267 21-Oct-2008 Bill Wendling <isanbard@gmail.com>

Fix comment to name "TokenFactor" instead of "Token factor".

llvm-svn: 57939


# 2fe6bee5 18-Oct-2008 Dan Gohman <gohman@apple.com>

Teach DAGCombine to fold constant offsets into GlobalAddress nodes,
and add a TargetLowering hook for it to use to determine when this
is legal (i.e. not in PIC mode, etc.)

This allows instruction s

Teach DAGCombine to fold constant offsets into GlobalAddress nodes,
and add a TargetLowering hook for it to use to determine when this
is legal (i.e. not in PIC mode, etc.)

This allows instruction selection to emit folded constant offsets
in more cases, such as the included testcase, eliminating the need
for explicit arithmetic instructions.

This eliminates the need for the C++ code in X86ISelDAGToDAG.cpp
that attempted to achieve the same effect, but wasn't as effective.

Also, fix handling of offsets in GlobalAddressSDNodes in several
places, including changing GlobalAddressSDNode's offset from
int to int64_t.

The Mips, Alpha, Sparc, and CellSPU targets appear to be
unaware of GlobalAddress offsets currently, so set the hook to
false on those targets.

llvm-svn: 57748

show more ...


# 85f48ade 17-Oct-2008 Mon P Wang <wangmp@apple.com>

Added MemIntrinsicNode which is useful to represent target intrinsics that
touches memory and need an associated MemOperand

llvm-svn: 57712


# 07d53b1d 14-Oct-2008 Evan Cheng <evan.cheng@apple.com>

Rename LoadX to LoadExt.

llvm-svn: 57526


# 4f0bd68c 09-Oct-2008 Dale Johannesen <dalej@apple.com>

Add a "loses information" return value to APFloat::convert
and APFloat::convertToInteger. Restore return value to
IEEE754. Adjust all users accordingly.

llvm-svn: 57329


# 6e054833 26-Sep-2008 Dan Gohman <gohman@apple.com>

Rename ConstantSDNode's getSignExtended to getSExtValue, for
consistancy with ConstantInt, and re-implement it in terms
of ConstantInt's getSExtValue.

llvm-svn: 56700


# 0e32a2c9 26-Sep-2008 Dale Johannesen <dalej@apple.com>

Add "inreg" field to CallSDNode (doesn't increase
its size). Adjust various lowering functions to
pass this info through from CallInst. Use it to
implement sseregparm returns on X86. Remove
X86_ss

Add "inreg" field to CallSDNode (doesn't increase
its size). Adjust various lowering functions to
pass this info through from CallInst. Use it to
implement sseregparm returns on X86. Remove
X86_ssecall calling convention.

llvm-svn: 56677

show more ...


# c50ada2f 25-Sep-2008 Dale Johannesen <dalej@apple.com>

Accept 'inreg' attribute on x86 functions as
meaning sse_regparm (i.e. float/double values go
in XMM0 instead of ST0). Update documentation
to reflect reality.

llvm-svn: 56619


# b0f876d5 20-Sep-2008 Cedric Venet <cedric.venet@laposte.net>

Update VS projects.
Change some class to struct for coherency.

llvm-svn: 56389


# 83ee17cd 19-Sep-2008 Dan Gohman <gohman@apple.com>

Now that ConstantSDNode doesn't hold an APInt,
use ARG_FLAGSSDNode as the most aligned node type,
as it contains an int64_t, which is 8-byte
aligned on mingw.

llvm-svn: 56358


# 24c79f28 16-Sep-2008 Bill Wendling <isanbard@gmail.com>

Reverting r56249. On further investigation, this functionality isn't needed.

Apologies for the thrashing.

llvm-svn: 56251


# 8bc392fb 16-Sep-2008 Bill Wendling <isanbard@gmail.com>

- Change "ExternalSymbolSDNode" to "SymbolSDNode".
- Add linkage to SymbolSDNode (default to external).
- Change ISD::ExternalSymbol to ISD::Symbol.
- Change ISD::TargetExternalSymbol to ISD::TargetS

- Change "ExternalSymbolSDNode" to "SymbolSDNode".
- Add linkage to SymbolSDNode (default to external).
- Change ISD::ExternalSymbol to ISD::Symbol.
- Change ISD::TargetExternalSymbol to ISD::TargetSymbol

These changes pave the way to allowing SymbolSDNodes with non-external linkage.

llvm-svn: 56249

show more ...


# 3c7b9ba5 15-Sep-2008 Dan Gohman <gohman@apple.com>

Re-enable SelectionDAG CSE for calls. It matters in the case of
libcalls, as in this testcase on ARM.

llvm-svn: 56226


# d3fe174c 13-Sep-2008 Dan Gohman <gohman@apple.com>

Define CallSDNode, an SDNode subclass for use with ISD::CALL.
Currently it just holds the calling convention and flags
for isVarArgs and isTailCall.

And it has several utility methods, which elimina

Define CallSDNode, an SDNode subclass for use with ISD::CALL.
Currently it just holds the calling convention and flags
for isVarArgs and isTailCall.

And it has several utility methods, which eliminate magic
5+2*i and similar index computations in several places.

CallSDNodes are not CSE'd. Teach UpdateNodeOperands to handle
nodes that are not CSE'd gracefully.

llvm-svn: 56183

show more ...


# ec270fb6 12-Sep-2008 Dan Gohman <gohman@apple.com>

Change ConstantSDNode and ConstantFPSDNode to use ConstantInt* and
ConstantFP* instead of APInt and APFloat directly.

This reduces the amount of time to create ConstantSDNode
and ConstantFPSDNode no

Change ConstantSDNode and ConstantFPSDNode to use ConstantInt* and
ConstantFP* instead of APInt and APFloat directly.

This reduces the amount of time to create ConstantSDNode
and ConstantFPSDNode nodes when ConstantInt* and ConstantFP*
respectively are already available, as is the case in
SelectionDAGBuild.cpp. Also, it reduces the amount of time
to legalize constants into constant pools, and the amount of
time to add ConstantFP operands to MachineInstrs, due to
eliminating ConstantInt::get and ConstantFP::get calls.

It increases the amount of work needed to create new constants
in cases where the client doesn't already have a ConstantInt*
or ConstantFP*, such as legalize expanding 64-bit integer constants
to 32-bit constants. And it adds a layer of indirection for the
accessor methods. But these appear to be outweight by the benefits
in most cases.

It will also make it easier to make ConstantSDNode and
ConstantFPNode more consistent with ConstantInt and ConstantFP.

llvm-svn: 56162

show more ...


# effb8944 12-Sep-2008 Dan Gohman <gohman@apple.com>

Rename ConstantSDNode::getValue to getZExtValue, for consistency
with ConstantInt. This led to fixing a bug in TargetLowering.cpp
using getValue instead of getAPIntValue.

llvm-svn: 56159


# 58d084c0 11-Sep-2008 Dale Johannesen <dalej@apple.com>

The version of AtomicSDNode::AtomicSDNode used (only) for
cmp-and-swap reversed the Cmp and Swap arguments; comments
make it clear this is unintentional. Unfortunately, the
x86 BE had a compensating

The version of AtomicSDNode::AtomicSDNode used (only) for
cmp-and-swap reversed the Cmp and Swap arguments; comments
make it clear this is unintentional. Unfortunately, the
x86 BE had a compensating reversal, which is removed here.
PPC is OK.

From inspection of the Alpha code I think it is OK, but
if somebody has that platform please check it out. I
cannot test on that platform.

llvm-svn: 56091

show more ...


# da2d8068 04-Sep-2008 Dale Johannesen <dalej@apple.com>

Add intrinsics for log, log2, log10, exp, exp2.
No functional change (and no FE change to generate them).

llvm-svn: 55753


# f304a7aa 28-Aug-2008 Gabor Greif <ggreif@gmail.com>

erect abstraction boundaries for accessing SDValue members, rename Val -> Node to reflect semantics

llvm-svn: 55504


# 41be0d44 28-Aug-2008 Dale Johannesen <dalej@apple.com>

Split the ATOMIC NodeType's to include the size, e.g.
ATOMIC_LOAD_ADD_{8,16,32,64} instead of ATOMIC_LOAD_ADD.
Increased the Hardcoded Constant OpActionsCapacity to match.
Large but boring; no functi

Split the ATOMIC NodeType's to include the size, e.g.
ATOMIC_LOAD_ADD_{8,16,32,64} instead of ATOMIC_LOAD_ADD.
Increased the Hardcoded Constant OpActionsCapacity to match.
Large but boring; no functional change.

This is to support partial-word atomics on ppc; i8 is
not a valid type there, so by the time we get to lowering, the
ATOMIC_LOAD nodes looks the same whether the type was i8 or i32.
The information can be added to the AtomicSDNode, but that is the
largest SDNode; I don't fully understand the SDNode allocation,
but it is sensitive to the largest node size, so increasing
that must be bad. This is the alternative.

llvm-svn: 55457

show more ...


# abfdf928 26-Aug-2008 Gabor Greif <ggreif@gmail.com>

disallow direct access to SDValue::ResNo, provide a getter instead

llvm-svn: 55394


# b4a173e9 26-Aug-2008 Gabor Greif <ggreif@gmail.com>

fix doxygen comment

llvm-svn: 55372


# 0c19df48 23-Aug-2008 Chris Lattner <sabre@nondot.org>

Switch the asmprinter (.ll) and all the stuff it requires over to
use raw_ostream instead of std::ostream. Among other goodness,
this speeds up llvm-dis of kc++ with a release build from 0.85s
to 0.

Switch the asmprinter (.ll) and all the stuff it requires over to
use raw_ostream instead of std::ostream. Among other goodness,
this speeds up llvm-dis of kc++ with a release build from 0.85s
to 0.49s (88% faster).

Other interesting changes:
1) This makes Value::print be non-virtual.
2) AP[S]Int and ConstantRange can no longer print to ostream directly,
use raw_ostream instead.
3) This fixes a bug in raw_os_ostream where it didn't flush itself
when destroyed.
4) This adds a new SDNode::print method, instead of only allowing "dump".


A lot of APIs have both std::ostream and raw_ostream versions, it would
be useful to go through and systematically anihilate the std::ostream
versions.

This passes dejagnu, but there may be minor fallout, plz let me know if
so and I'll fix it.

llvm-svn: 55263

show more ...


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