| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
it comes back, it will be largely a rewrite, so keeping the old codebase
in tree isn't helping anyone.
llvm-svn: 116190
|
|
|
|
| |
llvm-svn: 112202
|
|
|
|
| |
llvm-svn: 108991
|
|
|
|
|
|
| |
code can do calling-convention queries. This obviates OutputArgReg.
llvm-svn: 107786
|
|
|
|
|
|
| |
changes before doing phi lowering for switches.
llvm-svn: 102809
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
const_casts, and it reinforces the design of the Target classes being
immutable.
SelectionDAGISel::IsLegalToFold is now a static member function, because
PIC16 uses it in an unconventional way. There is more room for API
cleanup here.
And PIC16's AsmPrinter no longer uses TargetLowering.
llvm-svn: 101635
|
|
|
|
|
|
| |
MachineFunctionInfo subclasses.
llvm-svn: 101634
|
|
|
|
| |
llvm-svn: 95160
|
|
|
|
|
|
| |
sibcall eligibility.
llvm-svn: 95130
|
|
|
|
|
|
|
|
|
| |
Target independent isel should always pass along the "tail call" property. Change
target hook LowerCall's parameter "isTailCall" into a refernce. If the target
decides it's impossible to honor the tail call request, it should set isTailCall
to false to make target independent isel happy.
llvm-svn: 94626
|
|
|
|
|
|
| |
floating point comparisons, rather than hard-coding them as i32.
llvm-svn: 92199
|
|
|
|
| |
llvm-svn: 91996
|
|
|
|
| |
llvm-svn: 91993
|
|
|
|
|
|
| |
if it is Legal and does not result into a cyclic dep.
llvm-svn: 91904
|
|
|
|
|
|
|
|
| |
sdisel will use to properly complete phi nodes.
Not functionality change yet.
llvm-svn: 82273
|
|
|
|
| |
llvm-svn: 80773
|
|
|
|
| |
llvm-svn: 79690
|
|
|
|
|
|
|
|
|
| |
Clone functions that are shared between the Main thread and Interrupt thread.
CallSites are changed in AsmPrinter currently. A better solution would have been to modify the legalizer (SoftenFloat) to allow targets to change the name of libcalls for float operations. But that currently breaks other targets.
Also, cloing of automatic variables is done AsmPrinter, a better approach would
be to use the ValueMap in CloneFunction itself.
llvm-svn: 79562
|
|
|
|
|
|
|
|
| |
while
the latter is capable of representing either a primitive or an extended type.
llvm-svn: 78713
|
|
|
|
|
|
| |
Passing of indirect arguments starts after return value on the callee's frame.
llvm-svn: 78635
|
|
|
|
|
|
| |
own struct type.
llvm-svn: 78610
|
|
|
|
|
|
| |
SimpleValueType, which will simplify the privatization of IntegerType in the future.
llvm-svn: 78584
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of awkwardly encoding calling-convention information with ISD::CALL,
ISD::FORMAL_ARGUMENTS, ISD::RET, and ISD::ARG_FLAGS nodes, TargetLowering
provides three virtual functions for targets to override:
LowerFormalArguments, LowerCall, and LowerRet, which replace the custom
lowering done on the special nodes. They provide the same information, but
in a more immediately usable format.
This also reworks much of the target-independent tail call logic. The
decision of whether or not to perform a tail call is now cleanly split
between target-independent portions, and the target dependent portion
in IsEligibleForTailCallOptimization.
This also synchronizes all in-tree targets, to help enable future
refactoring and feature work.
llvm-svn: 78142
|
|
|
|
| |
llvm-svn: 77179
|
|
|
|
|
|
| |
bytes and not bytes.
llvm-svn: 74624
|
|
|
|
|
|
|
|
|
|
| |
have the alignment be calculated up front, and have the back-ends obey whatever
alignment is decided upon.
This allows for future work that would allow for precise no-op placement and the
like.
llvm-svn: 74564
|
|
|
|
| |
llvm-svn: 72604
|
|
|
|
|
|
|
| |
compiler libcalls start with .lib. now.
fixed section names.
llvm-svn: 71424
|
|
|
|
| |
llvm-svn: 69665
|
|
|
|
| |
llvm-svn: 69022
|
|
|
|
| |
llvm-svn: 68783
|
|
|
|
|
|
| |
by the MachineInstr itself, rather than by custom handling the DBG_STOPPOINT nodes.
llvm-svn: 68602
|
|
|
|
|
|
|
| |
Every function has the address of its frame in the beginning of code section.
The frame address is retrieved and used to pass arguments.
llvm-svn: 68597
|
|
|
|
|
|
| |
accessed based on an external symbol defining the location of temporary data for a function. For example: we have spill slots addressed as foo.tmp + 0, foo.tmp + 1 etc.
llvm-svn: 68442
|
|
|
|
|
|
| |
to have access to the line number field. So we convert that info as an operand by custom handling DBG_STOPPOINT in legalize.
llvm-svn: 68329
|
|
|
|
|
|
| |
onto the callee's stack directly and the callee loads the argvals from its own stack. Clang generated frameindexes validatd by recalculating the stack as if all frameindexes represent 1-byte slots.
llvm-svn: 68327
|
|
|
|
|
|
| |
Removed unncessary code. No functionality change.
llvm-svn: 67371
|
|
|
|
|
|
| |
ScheduleDAG's TLI member to use const.
llvm-svn: 64018
|
|
|
|
|
|
|
|
|
|
|
|
| |
Many targets build placeholder nodes for special operands, e.g.
GlobalBaseReg on X86 and PPC for the PIC base. There's no
sensible way to associate debug info with these. I've left
them built with getNode calls with explicit DebugLoc::getUnknownLoc operands.
I'm not too happy about this but don't see a good improvement;
I considered adding a getPseudoOperand or something, but it
seems to me that'll just make it harder to read.
llvm-svn: 63992
|
|
|
|
| |
llvm-svn: 63808
|
|
|
|
|
|
| |
argument. Adjust all callers and overloaded versions.
llvm-svn: 63444
|
|
|
|
|
|
|
| |
prototypes, in operand type legalization. No
functionality change.
llvm-svn: 62680
|
|
|
|
|
|
| |
Also a few signed comparison fixes.
llvm-svn: 62665
|
|
|
|
| |
llvm-svn: 62174
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Custom lower AND, OR, XOR bitwise operations.
llvm-svn: 60098
|
|
|
|
|
|
| |
ExpandIntegerOperand (LegalizeIntegerTypes.cpp) is needed which is yet to be reworked and submitted.
llvm-svn: 59617
|
|
|
|
|
|
| |
instruction opcodes are now numbered. No functionality change.
llvm-svn: 56497
|
|
|
|
| |
llvm-svn: 54128
|
|
|
|
|
|
|
| |
Changed cout to DOUT, and TODOs to FIXMEs.
Other changes as per coding conventions.
llvm-svn: 51105
|