#
bdb04d90 |
| 12-Feb-2016 |
Krzysztof Parzyszek <kparzysz@codeaurora.org> |
[Hexagon] Handle out-of-range offsets in eliminateFrameIndex
Create a virtual register that will hold the actual address and use it with the offset of 0 in the place of the original FI.
llvm-svn: 2
[Hexagon] Handle out-of-range offsets in eliminateFrameIndex
Create a virtual register that will hold the actual address and use it with the offset of 0 in the place of the original FI.
llvm-svn: 260688
show more ...
|
Revision tags: llvmorg-3.8.0-rc2, llvmorg-3.8.0-rc1 |
|
#
b0244454 |
| 11-Jan-2016 |
Krzysztof Parzyszek <kparzysz@codeaurora.org> |
[Hexagon] Mark D14 and GP as reserved registers
llvm-svn: 257336
|
#
21dc8bdd |
| 18-Dec-2015 |
Krzysztof Parzyszek <kparzysz@codeaurora.org> |
[Hexagon] Add PIC support
llvm-svn: 256025
|
Revision tags: llvmorg-3.7.1, llvmorg-3.7.1-rc2, llvmorg-3.7.1-rc1 |
|
#
23920ec9 |
| 19-Oct-2015 |
Krzysztof Parzyszek <kparzysz@codeaurora.org> |
[Hexagon] Fix debug information for local objects
- Isolate the check for the existence of a stack frame into hasFP. - Implement getFrameIndexReference for DWARF address computation. - Use getFrameI
[Hexagon] Fix debug information for local objects
- Isolate the check for the existence of a stack frame into hasFP. - Implement getFrameIndexReference for DWARF address computation. - Use getFrameIndexReference for offset computation in eliminateFrameIndex. - Preserve debug information for dynamically allocated stack objects. - Prefer FP to access local objects at -O0. - Add experimental code to skip allocframe when not strictly necessary (disabled by default).
llvm-svn: 250718
show more ...
|
#
7c958713 |
| 17-Oct-2015 |
Colin LeMahieu <colinl@codeaurora.org> |
[Hexagon] Adding skeleton of HVX extension instructions.
llvm-svn: 250600
|
Revision tags: llvmorg-3.7.0, llvmorg-3.7.0-rc4, llvmorg-3.7.0-rc3, studio-1.4, llvmorg-3.7.0-rc2 |
|
#
e4d22d59 |
| 20-Jul-2015 |
JF Bastien <jfb@google.com> |
Targets: commonize some stack realignment code
This patch does the following: * Fix FIXME on `needsStackRealignment`: it is now shared between multiple targets, implemented in `TargetRegisterInfo`,
Targets: commonize some stack realignment code
This patch does the following: * Fix FIXME on `needsStackRealignment`: it is now shared between multiple targets, implemented in `TargetRegisterInfo`, and isn't `virtual` anymore. This will break out-of-tree targets, silently if they used `virtual` and with a build error if they used `override`. * Factor out `canRealignStack` as a `virtual` function on `TargetRegisterInfo`, by default only looks for the `no-realign-stack` function attribute.
Multiple targets duplicated the same `needsStackRealignment` code: - Aarch64. - ARM. - Mips almost: had extra `DEBUG` diagnostic, which the default implementation now has. - PowerPC. - WebAssembly. - x86 almost: has an extra `-force-align-stack` option, which the default implementation now has.
The default implementation of `needsStackRealignment` used to just return `false`. My current patch changes the behavior by simply using the above shared behavior. This affects: - AMDGPU - BPF - CppBackend - MSP430 - NVPTX - Sparc - SystemZ - XCore - Out-of-tree targets This is a breaking change! `make check` passes.
The only implementation of the `virtual` function (besides the slight different in x86) was Hexagon (which did `MF.getFrameInfo()->getMaxAlignment() > 8`), and potentially some out-of-tree targets. Hexagon now uses the default implementation.
`needsStackRealignment` was being overwritten in `<Target>GenRegisterInfo.inc`, to return `false` as the default also did. That was odd and is now gone.
Reviewers: sunfish
Subscribers: aemerson, llvm-commits, jfb
Differential Revision: http://reviews.llvm.org/D11160
llvm-svn: 242727
show more ...
|
Revision tags: llvmorg-3.7.0-rc1 |
|
#
b73a2ed2 |
| 10-Jul-2015 |
JF Bastien <jfb@google.com> |
Target RegisterInfo: devirtualize TargetFrameLowering
Summary: The target frame lowering's concrete type is always known in RegisterInfo, yet it's only sometimes devirtualized through a static_cast.
Target RegisterInfo: devirtualize TargetFrameLowering
Summary: The target frame lowering's concrete type is always known in RegisterInfo, yet it's only sometimes devirtualized through a static_cast. This change adds an auto-generated static function <Target>GenRegisterInfo::getFrameLowering(const MachineFunction &MF) which does this devirtualization, and uses this function in all targets which can.
This change was suggested by sunfish in D11070 for WebAssembly, I figure that I may as well improve the other targets while I'm here.
Subscribers: sunfish, ted, llvm-commits, jfb
Differential Revision: http://reviews.llvm.org/D11093
llvm-svn: 241921
show more ...
|
Revision tags: llvmorg-3.6.2, llvmorg-3.6.2-rc1, llvmorg-3.6.1, llvmorg-3.6.1-rc1 |
|
#
4fa2a9f7 |
| 22-Apr-2015 |
Krzysztof Parzyszek <kparzysz@codeaurora.org> |
[Hexagon] Overhaul of stack object allocation
- Use static allocation for aligned stack objects. - Simplify dynamic stack object allocation. - Simplify elimination of frame-indices.
llvm-svn: 235521
|
Revision tags: llvmorg-3.5.2, llvmorg-3.5.2-rc1 |
|
#
a29622a8 |
| 12-Mar-2015 |
Krzysztof Parzyszek <kparzysz@codeaurora.org> |
Remove unused complex patterns for addressing modes on Hexagon.
llvm-svn: 232057
|
#
c4d31405 |
| 10-Mar-2015 |
Eric Christopher <echristo@gmail.com> |
Remove subtarget dependence from HexagonRegisterInfo.
llvm-svn: 231887
|
Revision tags: llvmorg-3.6.0, llvmorg-3.6.0-rc4, llvmorg-3.6.0-rc3 |
|
#
4fd203d3 |
| 09-Feb-2015 |
Colin LeMahieu <colinl@codeaurora.org> |
[Hexagon] Removing more V4 predicates since V4 is the required minimum.
llvm-svn: 228614
|
#
f297dbed |
| 05-Feb-2015 |
Colin LeMahieu <colinl@codeaurora.org> |
[Hexagon] Renaming A2_addi and formatting.
llvm-svn: 228318
|
Revision tags: llvmorg-3.6.0-rc2, llvmorg-3.6.0-rc1 |
|
#
8ffce23c |
| 15-Jan-2015 |
Colin LeMahieu <colinl@codeaurora.org> |
[Hexagon] Replacing old versions of stores and loads.
llvm-svn: 226065
|
#
c7522f31 |
| 14-Jan-2015 |
Colin LeMahieu <colinl@codeaurora.org> |
[Hexagon] Replacing old version of convert and load f64.
llvm-svn: 226057
|
#
bda31b42 |
| 29-Dec-2014 |
Colin LeMahieu <colinl@codeaurora.org> |
[Hexagon] Adding post-increment register form stores and register-immediate form stores with tests.
llvm-svn: 224952
|
#
947cd704 |
| 23-Dec-2014 |
Colin LeMahieu <colinl@codeaurora.org> |
[Hexagon] Adding doubleword load.
llvm-svn: 224787
|
#
026e88d3 |
| 23-Dec-2014 |
Colin LeMahieu <colinl@codeaurora.org> |
[Hexagon] Reapplying 224775 load words.
llvm-svn: 224786
|
#
20be1571 |
| 23-Dec-2014 |
Colin LeMahieu <colinl@codeaurora.org> |
Reverting 224775 until mayLoad flag is addressed.
llvm-svn: 224783
|
#
122aeaaf |
| 23-Dec-2014 |
Colin LeMahieu <colinl@codeaurora.org> |
[Hexagon] Adding word loads.
llvm-svn: 224775
|
#
8e39cad9 |
| 23-Dec-2014 |
Colin LeMahieu <colinl@codeaurora.org> |
[Hexagon] Adding signed halfword loads.
llvm-svn: 224774
|
#
a9386d28 |
| 23-Dec-2014 |
Colin LeMahieu <colinl@codeaurora.org> |
[Hexagon] Adding unsigned halfword load.
llvm-svn: 224772
|
#
4b1eac4d |
| 22-Dec-2014 |
Colin LeMahieu <colinl@codeaurora.org> |
[Hexagon] Adding memb instruction. Fixing whitespace in test from 224730.
llvm-svn: 224735
|
#
af1e5de1 |
| 22-Dec-2014 |
Colin LeMahieu <colinl@codeaurora.org> |
[Hexagon] Adding classes and load unsigned byte instruction, updating usages.
llvm-svn: 224730
|
Revision tags: llvmorg-3.5.1, llvmorg-3.5.1-rc2, llvmorg-3.5.1-rc1 |
|
#
efa74e02 |
| 18-Nov-2014 |
Colin LeMahieu <colinl@codeaurora.org> |
[Hexagon] Converting from ADD_rr to A2_add which has encoding bits. Adding test to show correct instruction selection and encoding.
llvm-svn: 222249
|
Revision tags: llvmorg-3.5.0, llvmorg-3.5.0-rc4, llvmorg-3.5.0-rc3, llvmorg-3.5.0-rc2 |
|
#
fc6de428 |
| 05-Aug-2014 |
Eric Christopher <echristo@gmail.com> |
Have MachineFunction cache a pointer to the subtarget to make lookups shorter/easier and have the DAG use that to do the same lookup. This can be used in the future for TargetMachine based caching lo
Have MachineFunction cache a pointer to the subtarget to make lookups shorter/easier and have the DAG use that to do the same lookup. This can be used in the future for TargetMachine based caching lookups from the MachineFunction easily.
Update the MIPS subtarget switching machinery to update this pointer at the same time it runs.
llvm-svn: 214838
show more ...
|