History log of /llvm-project/llvm/lib/Target/Hexagon/HexagonRegisterInfo.cpp (Results 51 – 75 of 103)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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 ...


12345