| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
MERGE_VALUES node with only one operand, so get
rid of special code that only existed to handle
that possibility.
llvm-svn: 60349
|
| |
|
|
|
|
|
|
|
|
|
| |
ReplaceNodeResults: rather than returning a node which
must have the same number of results as the original
node (which means mucking around with MERGE_VALUES,
and which is also easy to get wrong since SelectionDAG
folding may mean you don't get the node you expect),
return the results in a vector.
llvm-svn: 60348
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
(this doesn't happen that often, since most code
does not use illegal types) then follow it by a
DAG combiner run that is allowed to generate
illegal operations but not illegal types. I didn't
modify the target combiner code to distinguish like
this between illegal operations and illegal types,
so it will not produce illegal operations as well
as not producing illegal types.
llvm-svn: 59960
|
| |
|
|
|
|
|
| |
practice these booleans are mostly produced by SetCC,
however the concept is more general.
llvm-svn: 59911
|
| |
|
|
|
|
|
|
|
|
| |
This is Chris' patch from the PR, modified to realize that
SETUGT/SETULT occur legitimately with integers, plus
two fixes in LegalizeDAG to pass a valid result type into
LegalizeSetCC. The argument of TLI.getSetCCResultType is
ignored on PPC, but I think I'm following usage elsewhere.
llvm-svn: 58871
|
| |
|
|
|
|
|
| |
(i32 for PPC, not i8). Correct this, and some
formatting while there.
llvm-svn: 58451
|
| |
|
|
|
|
|
|
|
|
| |
ppcf128 to i32 conversion and expand it into a code
sequence like in LegalizeDAG. This needs custom
ppc lowering of FP_ROUND_INREG, so turn that on and
make it work with LegalizeTypes. Probably PPC should
simply custom lower the original conversion.
llvm-svn: 58329
|
| |
|
|
|
|
| |
isn't yet prepared for it.
llvm-svn: 57886
|
| |
|
|
| |
llvm-svn: 57526
|
| |
|
|
|
|
|
| |
parameters instead of raw Constants. This prevents the constants from
being selected by the isel pass, fixing PR2735.
llvm-svn: 57385
|
| |
|
|
|
|
|
| |
consistancy with ConstantInt, and re-implement it in terms
of ConstantInt's getSExtValue.
llvm-svn: 56700
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
the addressing mode, it requires the same logic for PIC relative addressing, etc.
llvm-svn: 56526
|
| |
|
|
| |
llvm-svn: 56513
|
| |
|
|
|
|
| |
default.
llvm-svn: 56471
|
| |
|
|
|
|
| |
function with appropriate parameters. This allows us to support blocks on PPC.
llvm-svn: 56267
|
| |
|
|
|
|
| |
Apologies for the thrashing.
llvm-svn: 56251
|
| |
|
|
|
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
with ConstantInt. This led to fixing a bug in TargetLowering.cpp
using getValue instead of getAPIntValue.
llvm-svn: 56159
|
| |
|
|
|
|
|
| |
__sync_fetch_and_nand as ANDC, even though that's
not what nand means.
llvm-svn: 56087
|
| |
|
|
|
|
| |
No functional change (and no FE change to generate them).
llvm-svn: 55753
|
| |
|
|
| |
llvm-svn: 55643
|
| |
|
|
| |
llvm-svn: 55588
|
| |
|
|
|
|
| |
Dale, Could you please review this?
llvm-svn: 55581
|
| |
|
|
| |
llvm-svn: 55554
|
| |
|
|
| |
llvm-svn: 55546
|
| |
|
|
|
|
| |
Node to reflect semantics
llvm-svn: 55504
|
| |
|
|
|
|
| |
when the compare value has a NaN
llvm-svn: 55499
|
| |
|
|
| |
llvm-svn: 55478
|
| |
|
|
| |
llvm-svn: 55394
|
| |
|
|
|
|
| |
binary primitives.
llvm-svn: 55343
|
| |
|
|
|
|
|
|
| |
generic stuff works fine.
Mark rewritten cmp-and-swap as not using CR1.
llvm-svn: 55336
|
| |
|
|
|
|
|
| |
loads and stores but it's even more important for
it to store the right value.:(
llvm-svn: 55319
|
| |
|
|
| |
llvm-svn: 55186
|
| |
|
|
|
|
|
| |
so that lwarx and stwcx are always executed the same number of times.
This is important for performance, I'm told.
llvm-svn: 55163
|
| |
|
|
| |
llvm-svn: 54644
|
| |
|
|
|
|
|
|
| |
switches use the binary search algorithm) for
environments that don't support it. PPC64 JIT
is such an environment; turn the flag on for that.
llvm-svn: 54248
|
| |
|
|
| |
llvm-svn: 54128
|
| |
|
|
|
|
|
| |
parallel its analogue, Value::value_use_iterator. The operator* method
now returns the user, rather than the use.
llvm-svn: 54127
|
| |
|
|
|
|
| |
(all of the parameter registers are used) are loaded from sp offsets that were off by 4.
llvm-svn: 53979
|
| |
|
|
|
|
|
|
|
|
|
|
| |
generic SDNode's (nodes with their own constructors
should do sanity checking in the constructor). Add
sanity checks for BUILD_VECTOR and fix all the places
that were producing bogus BUILD_VECTORs, as found by
"make check". My favorite is the BUILD_VECTOR with
only two operands that was being used to build a
vector with four elements!
llvm-svn: 53850
|
| |
|
|
|
|
|
|
|
|
| |
returns a node with the right number of
return values. This fixes codegen of
Generic/cast-fp.ll, Generic/fp_to_int.ll
and PowerPC/multiple-return-values.ll
when using -march=ppc32 -mattr=+64bit.
llvm-svn: 53794
|
| |
|
|
| |
llvm-svn: 53505
|
| |
|
|
|
|
|
| |
instead of using the frame index for the SVOffset, which was
inconsistent.
llvm-svn: 53486
|
| |
|
|
| |
llvm-svn: 53411
|
| |
|
|
|
|
| |
his work on legalizetypes.
llvm-svn: 53410
|
| |
|
|
|
|
|
|
|
|
|
| |
MachineMemOperands. The pools are owned by MachineFunctions.
This drastically reduces the number of calls to malloc/free made
during the "Emit" phase of scheduling, as well as later phases
in CodeGen. Combined with other changes, this speeds up the
"instruction selection" phase of CodeGen by 10% in some cases.
llvm-svn: 53212
|
| |
|
|
|
|
|
|
|
|
|
|
| |
hook for each way in which a result type can be
legalized (promotion, expansion, softening etc),
just use one: ReplaceNodeResults, which returns
a node with exactly the same result types as the
node passed to it, but presumably with a bunch of
custom code behind the scenes. No change if the
new LegalizeTypes infrastructure is not turned on.
llvm-svn: 53137
|
| |
|
|
|
|
|
|
|
|
| |
to be passed the list of value types, and use this
where appropriate. Inappropriate places are where
the value type list is already known and may be
long, in which case the existing method is more
efficient.
llvm-svn: 53035
|