| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. MachineJumpTableInfo is now created lazily for a function the first time
it actually makes a jump table instead of for every function.
2. The encoding of jump table entries is now described by the
MachineJumpTableInfo::JTEntryKind enum. This enum is determined by the
TLI::getJumpTableEncoding() hook, instead of by lots of code scattered
throughout the compiler that "knows" that jump table entries are always
32-bits in pic mode (for example).
3. The size and alignment of jump table entries is now calculated based on
their kind, instead of at machinefunction creation time.
Future work includes using the EntryKind in more places in the compiler,
eliminating other logic that "knows" the layout of jump tables in various
situations.
llvm-svn: 94470
|
|
|
|
|
|
|
| |
the alignment allows. Fixed a bug where we didn't use a
vector load/store for PR5626.
llvm-svn: 94338
|
|
|
|
|
|
|
|
|
|
| |
really does need to be a vector type, because
TargetLowering::getOperationAction for SIGN_EXTEND_INREG uses that type,
and it needs to be able to distinguish between vectors and scalars.
Also, fix some more issues with legalization of vector casts.
llvm-svn: 93043
|
|
|
|
| |
llvm-svn: 92575
|
|
|
|
| |
llvm-svn: 92188
|
|
|
|
| |
llvm-svn: 92011
|
|
|
|
| |
llvm-svn: 91953
|
|
|
|
| |
llvm-svn: 91949
|
|
|
|
|
|
| |
is finished.
llvm-svn: 91942
|
|
|
|
|
|
| |
was using "Tmp1" in the first getNode call instead of Node->getOperand(0).
llvm-svn: 91936
|
|
|
|
|
|
|
|
| |
return partial registers. This affected the back-end lowering code some.
Also patch up some places I missed before in the "get" functions.
llvm-svn: 91880
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
LegalizeDAG.cpp. Unlike the code it replaces, which simply decrements the simple
type by one, getHalfSizedIntegerVT() searches for the smallest simple integer
type that is at least half the size of the type it is called on. This approach
has the advantage that it will continue working if a new value type (such as
i24) is added to MVT.
Also, in preparation for new value types, remove the assertions that
non-power-of-2 8-bit-mutiple types are Extended when legalizing extload and
truncstore operations.
llvm-svn: 91614
|
|
|
|
|
|
| |
a vector type.
llvm-svn: 91181
|
|
|
|
| |
llvm-svn: 91158
|
|
|
|
| |
llvm-svn: 90668
|
|
|
|
|
|
| |
Patch by Howard Hinnant!
llvm-svn: 90365
|
|
|
|
|
|
|
|
| |
Note that "hasDotLocAndDotFile"-style debug info was already broken;
people wanting this functionality should implement it in the
AsmPrinter/DwarfWriter code.
llvm-svn: 89711
|
|
|
|
| |
llvm-svn: 89536
|
|
|
|
|
|
|
| |
and stores, handle the case where the element size is not
a valid target type correctly (PPC).
llvm-svn: 89521
|
|
|
|
|
|
|
|
|
| |
constant whose component type is not a legal type for the target.
(If the target ConstantPool cannot handle this type either, it has
an opportunity to merge elements. In practice any target with
8-bit bytes must support i8 *as data*). 7320806 (partial).
llvm-svn: 86751
|
|
|
|
| |
llvm-svn: 86384
|
|
|
|
| |
llvm-svn: 85361
|
|
|
|
|
|
| |
returns true if the fp immediate can be natively codegened by target.
llvm-svn: 85281
|
|
|
|
|
|
| |
VISIBILITY_HIDDEN removal.
llvm-svn: 85043
|
|
|
|
|
|
|
| |
Chris claims we should never have visibility_hidden inside any .cpp file but
that's still not true even after this commit.
llvm-svn: 85042
|
|
|
|
|
|
|
|
|
|
|
| |
stack slots and giving them different PseudoSourceValue's did not fix the
problem of post-alloc scheduling miscompiling llvm itself.
- Apply Dan's conservative workaround by assuming any non fixed stack slots can
alias other memory locations. This means a load from spill slot #1 cannot
move above a store of spill slot #2.
- Enable post-alloc scheduling for x86 at optimization leverl Default and above.
llvm-svn: 84424
|
|
|
|
|
|
| |
PseudoSourceValue.
llvm-svn: 84411
|
|
|
|
| |
llvm-svn: 84321
|
|
|
|
|
|
| |
necessarily fixed. Only those will negative frame indices are "fixed."
llvm-svn: 84315
|
|
|
|
| |
llvm-svn: 84300
|
|
|
|
| |
llvm-svn: 83182
|
|
|
|
|
|
| |
Use MDNodes to encode debug info in llvm IR.
llvm-svn: 80406
|
|
|
|
| |
llvm-svn: 80116
|
|
|
|
| |
llvm-svn: 80073
|
|
|
|
|
|
|
|
| |
llvm.dbg.... global variables, to encode debugging information in llvm IR. This is mostly a mechanical change that tests metadata support very well.
This change speeds up llvm-gcc by more then 6% at "-O0 -g" (measured by compiling InstructionCombining.cpp!)
llvm-svn: 79977
|
|
|
|
|
|
| |
update all code that this affects.
llvm-svn: 79830
|
|
|
|
| |
llvm-svn: 79742
|
|
|
|
|
|
| |
just falling through the end.
llvm-svn: 79383
|
|
|
|
|
|
| |
SRA_PARTS, as is done for SRL, SHL, and SRA.
llvm-svn: 79380
|
|
|
|
| |
llvm-svn: 79133
|
|
|
|
| |
llvm-svn: 79087
|
|
|
|
|
|
|
|
|
|
| |
libcall. Take advantage of this in the ARM backend to rectify broken
choice of CC when hard float is in effect. PIC16 may want to see if
it could be of use in MakePIC16Libcall, which works unchanged.
Patch by Sandeep!
llvm-svn: 79033
|
|
|
|
| |
llvm-svn: 78948
|
|
|
|
|
|
| |
infrastructure work needed to get the contexts to where they need to be first.
llvm-svn: 78759
|
|
|
|
|
|
|
|
| |
while
the latter is capable of representing either a primitive or an extended type.
llvm-svn: 78713
|
|
|
|
|
|
| |
own struct type.
llvm-svn: 78610
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: 77635
|
|
|
|
| |
llvm-svn: 77516
|
|
|
|
| |
llvm-svn: 77495
|