| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
about stack alignment.
llvm-svn: 133679
|
|
|
|
| |
llvm-svn: 133308
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The register allocators automatically filter out reserved registers and
place the callee saved registers last in the allocation order, so custom
methods are no longer necessary just for that.
Some targets still use custom allocation orders:
ARM/Thumb: The high registers are removed from GPR in thumb mode. The
NEON allocation orders prefer to use non-VFP2 registers first.
X86: The GR8 classes omit AH-DH in x86-64 mode to avoid REX trouble.
SystemZ: Some of the allocation orders are omitting R12 aliases without
explanation. I don't understand this target well enough to fix that. It
looks like all the boilerplate could be removed by reserving the right
registers.
llvm-svn: 132781
|
|
|
|
|
|
| |
No functional change.
llvm-svn: 132455
|
|
|
|
|
|
|
|
| |
directives.
Fixes PR9826.
llvm-svn: 132317
|
|
|
|
|
|
|
|
|
| |
getMatchingSuperRegClass()
was saying that the matching superregister class of GR32_NOREX in GR64_NOREX_NOSP
is GR64_NOREX, which drops the NOSP constraint. This fixes PR10032.
llvm-svn: 132225
|
|
|
|
|
|
|
| |
scheme uses internally. Implement it for x86 (the only architecture that LLVM
supports for which this matters right now).
llvm-svn: 131969
|
|
|
|
|
|
| |
uses them.
llvm-svn: 131591
|
|
|
|
|
|
|
| |
It is OK for B to be any GR8_ABCD_H superclass, the returned register class
doesn't have to map surjectively onto B.
llvm-svn: 130892
|
|
|
|
|
|
|
|
|
|
|
|
| |
register class inflation.
The hook will be used by the register allocator when recomputing register
classes after removing constraints.
Thumb1 code doesn't allow anything larger than tGPR, and x86 needs to ensure
that the spill size doesn't change.
llvm-svn: 130228
|
|
|
|
|
|
| |
Luis Felipe Strano Moraes!
llvm-svn: 129558
|
|
|
|
| |
llvm-svn: 127380
|
|
|
|
| |
llvm-svn: 127376
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
flexible.
If it returns a register class that's different from the input, then that's the
register class used for cross-register class copies.
If it returns a register class that's the same as the input, then no cross-
register class copies are needed (normal copies would do).
If it returns null, then it's not at all possible to copy registers of the
specified register class.
llvm-svn: 127368
|
|
|
|
| |
llvm-svn: 127175
|
|
|
|
| |
llvm-svn: 124272
|
|
|
|
| |
llvm-svn: 124268
|
|
|
|
| |
llvm-svn: 124267
|
|
|
|
|
|
| |
and fixes here and there.
llvm-svn: 123170
|
|
|
|
| |
llvm-svn: 123102
|
|
|
|
| |
llvm-svn: 122528
|
|
|
|
| |
llvm-svn: 120229
|
|
|
|
| |
llvm-svn: 119904
|
|
|
|
| |
llvm-svn: 119754
|
|
|
|
| |
llvm-svn: 119740
|
|
|
|
|
|
| |
out of TargetRegisterInfo to TargetFrameInfo, which is definitely much better suitable place
llvm-svn: 119097
|
|
|
|
| |
llvm-svn: 115952
|
|
|
|
|
|
| |
This function looks like it is about ready to be generated by TebleGen.
llvm-svn: 115876
|
|
|
|
|
|
| |
Based on the patch by Cameron Esfahani!
llvm-svn: 115479
|
|
|
|
| |
llvm-svn: 114597
|
|
|
|
|
|
| |
Teaching the code generator about CR8-15, how to rex them up, etc.
llvm-svn: 114533
|
|
|
|
|
|
| |
Patch by Cameron Esfahani!
llvm-svn: 112902
|
|
|
|
| |
llvm-svn: 112885
|
|
|
|
|
|
| |
Patch by Jan Sjodin!
llvm-svn: 112875
|
|
|
|
|
|
| |
to try to re-use scavenged frame index reference registers. rdar://8277890
llvm-svn: 112241
|
|
|
|
|
|
|
|
| |
Mark _alloca call as clobberring EFLAGS, otherwise some DCE might remove
other flags-clobberring stuff (e.g. cmp instructions) occuring after
_alloca call.
llvm-svn: 112034
|
|
|
|
| |
llvm-svn: 110460
|
|
|
|
| |
llvm-svn: 110410
|
|
|
|
| |
llvm-svn: 110404
|
|
|
|
|
|
|
|
| |
address of the static
ID member as the sole unique type identifier. Clean up APIs related to this change.
llvm-svn: 110396
|
|
|
|
| |
llvm-svn: 109295
|
|
|
|
| |
llvm-svn: 108812
|
|
|
|
| |
llvm-svn: 108588
|
|
|
|
|
|
| |
needsStackRealignment is currently checking the can conditions as well.
llvm-svn: 108581
|
|
|
|
|
|
| |
thus is a much more meaningful name.
llvm-svn: 108563
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
notes:
- The instructions are being added with dummy placeholder patterns using some 256
specifiers, this is not meant to work now, but since there are some multiclasses
generic enough to accept them, when we go for codegen, the stuff will be already
there.
- Add VEX encoding bits to support YMM
- Add MOVUPS and MOVAPS in the first round
- Use "Y" as suffix for those Instructions: MOVUPSYrr, ...
- All AVX instructions in X86InstrSSE.td will move soon to a new X86InstrAVX
file.
llvm-svn: 107996
|
|
|
|
|
|
|
|
|
|
|
| |
like all other instructions, even though a segment is not
allowed. This resolves a bunch of gross hacks in the
encoder and makes LEA more consistent with the rest of the
instruction set.
No functionality change.
llvm-svn: 107934
|
|
|
|
|
|
| |
slots so it's always false.
llvm-svn: 107550
|
|
|
|
|
|
|
|
|
| |
flag argument to addReg is not the same format as flags attached
to MachineOperand, although both have the same info. I don't
think this actually mattered; the bootstrap failure did not
reproduce on the next run anyway.
llvm-svn: 106049
|
|
|
|
| |
llvm-svn: 105988
|