| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in the backend. Introduce a new SDNode type, MemOperandSDNode, for
holding a MemOperand in the SelectionDAG IR, and add a MemOperand
list to MachineInstr, and code to manage them. Remove the offset
field from SrcValueSDNode; uses of SrcValueSDNode that were using
it are all all using MemOperandSDNode now.
Also, begin updating some getLoad and getStore calls to use the
PseudoSourceValue objects.
Most of this was written by Florian Brander, some
reorganization and updating to TOT by me.
llvm-svn: 46585
|
| |
|
|
|
|
|
|
| |
proper name. Rename it to EmitInstrWithCustomInserter since it does not necessarily insert
instruction at the end.
llvm-svn: 46562
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
precision integers. This won't actually work
(and most of the code is dead) unless the new
legalization machinery is turned on. While
there, I rationalized the handling of i1, and
removed some bogus (and unused) sextload patterns.
For i1, this could result in microscopically
better code for some architectures (not X86).
It might also result in worse code if annotating
with AssertZExt nodes turns out to be more harmful
than helpful.
llvm-svn: 46280
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
that "machine" classes are used to represent the current state of
the code being compiled. Given this expanded name, we can start
moving other stuff into it. For now, move the UsedPhysRegs and
LiveIn/LoveOuts vectors from MachineFunction into it.
Update all the clients to match.
This also reduces some needless #includes, such as MachineModuleInfo
from MachineFunction.
llvm-svn: 45467
|
| |
|
|
|
|
| |
Likewise setImmedValue -> setImm
llvm-svn: 45453
|
| |
|
|
| |
llvm-svn: 45418
|
| |
|
|
|
|
|
|
|
|
|
| |
adjustment fields, and an optional flag. If there is a "dynamic_stackalloc" in
the code, make sure that it's bracketed by CALLSEQ_START and CALLSEQ_END. If
not, then there is the potential for the stack to be changed while the stack's
being used by another instruction (like a call).
This can only result in tears...
llvm-svn: 44037
|
| |
|
|
| |
llvm-svn: 42881
|
| |
|
|
|
|
| |
illegal. Thanks to gabor for pointing this out!
llvm-svn: 42832
|
| |
|
|
|
|
|
| |
init_trampoline. There is now only one
trampoline intrinsic.
llvm-svn: 41841
|
| |
|
|
|
|
| |
still under discussion.
llvm-svn: 40549
|
| |
|
|
| |
llvm-svn: 39813
|
| |
|
|
| |
llvm-svn: 39737
|
| |
|
|
|
|
|
|
|
| |
TargetLowering to SelectionDAG so that they have more convenient
access to the current DAG, in preparation for the ValueType routines
being changed from standalone functions to members of SelectionDAG for
the pre-legalize vector type changes.
llvm-svn: 37704
|
| |
|
|
|
|
| |
zext/sext/aext stuff.
llvm-svn: 35008
|
| |
|
|
| |
llvm-svn: 34488
|
| |
|
|
| |
llvm-svn: 34482
|
| |
|
|
|
|
| |
address nodes.
llvm-svn: 33636
|
| |
|
|
| |
llvm-svn: 33537
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Three changes:
1. Convert signed integer types to signless versions.
2. Implement the @sext and @zext parameter attributes. Previously the
type of an function parameter was used to determine whether it should
be sign extended or zero extended before the call. This information is
now communicated via the function type's parameter attributes.
3. The interface to LowerCallTo had to be changed in order to accommodate
the parameter attribute information. Although it would have been
convenient to pass in the FunctionType itself, there isn't always one
present in the caller. Consequently, a signedness indication for the
result type and for each parameter was provided for in the interface
to this method. All implementations were changed to make the adjustment
necessary.
llvm-svn: 32788
|
| |
|
|
| |
llvm-svn: 32333
|
| |
|
|
|
|
| |
of opcode and number of operands.
llvm-svn: 31947
|
| |
|
|
| |
llvm-svn: 31571
|
| |
|
|
| |
llvm-svn: 31294
|
| |
|
|
| |
llvm-svn: 30945
|
| |
|
|
| |
llvm-svn: 30844
|
| |
|
|
| |
llvm-svn: 30759
|
| |
|
|
|
|
| |
extra operand to LOADX to specify the exact value extension type.
llvm-svn: 30714
|
| |
|
|
| |
llvm-svn: 30279
|
| |
|
|
| |
llvm-svn: 29901
|
| |
|
|
| |
llvm-svn: 29898
|
| |
|
|
| |
llvm-svn: 29895
|
| |
|
|
| |
llvm-svn: 29726
|
| |
|
|
| |
llvm-svn: 29604
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in the start of an array and a count of operands where applicable. In many
cases, the number of operands is known, so this static array can be allocated
on the stack, avoiding the heap. In many other cases, a SmallVector can be
used, which has the same benefit in the common cases.
I updated a lot of code calling getNode that takes a vector, but ran out of
time. The rest of the code should be updated, and these methods should be
removed.
We should also do the same thing to eliminate the methods that take a
vector of MVT::ValueTypes.
It would be extra nice to convert the dagiselemitter to avoid creating vectors
for operands when calling getTargetNode.
llvm-svn: 29566
|
| |
|
|
| |
llvm-svn: 29549
|
| |
|
|
| |
llvm-svn: 29373
|
| |
|
|
| |
llvm-svn: 28797
|
| |
|
|
|
|
| |
RET chain, value1, sign1, value2, sign2, ...
llvm-svn: 28510
|
| |
|
|
| |
llvm-svn: 28482
|
| |
|
|
| |
llvm-svn: 28459
|
| |
|
|
|
|
| |
non-deterministic behavior.
llvm-svn: 28454
|
| |
|
|
|
|
| |
by Anton Korobeynikov! This is a step towards closing PR786.
llvm-svn: 28447
|
| |
|
|
| |
llvm-svn: 28247
|
| |
|
|
|
|
|
|
| |
x86 and ppc for 100% dense switch statements when relocations are non-PIC.
This support will be extended and enhanced in the coming days to support
PIC, and less dense forms of jump tables.
llvm-svn: 27947
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
manner that the LowerSwitch LLVM to LLVM pass does: emitting a binary
search tree of basic blocks. The new approach has several advantages:
it is faster, it generates significantly smaller code in many cases, and
it paves the way for implementing dense switch tables as a jump table by
handling switches directly in the instruction selector.
This functionality is currently only enabled on x86, but should be safe for
every target. In anticipation of making it the default, the cfg is now
properly updated in the x86, ppc, and sparc select lowering code.
llvm-svn: 27156
|
| |
|
|
| |
llvm-svn: 27109
|
| |
|
|
|
|
|
|
| |
Make the PPC backend not dependent on BRTWOWAY_CC and make the branch
selector smarter about the code it generates, fixing a case in the
readme.
llvm-svn: 26814
|
| |
|
|
|
|
| |
implement copysign as a native op if they have it.
llvm-svn: 26541
|
| |
|
|
|
|
|
| |
and SUBE nodes that actually expose what's going on and allow for
significant simplifications in the targets.
llvm-svn: 26255
|