diff options
| author | Jiangning Liu <jiangning.liu@arm.com> | 2014-05-15 23:45:42 +0000 |
|---|---|---|
| committer | Jiangning Liu <jiangning.liu@arm.com> | 2014-05-15 23:45:42 +0000 |
| commit | 932e1c392426b692d72c71a849ca94a0a20f9cb7 (patch) | |
| tree | b2d76447857d9f811be484b708122cee37c24ca2 /llvm/lib/Target/AArch64/AArch64ISelLowering.h | |
| parent | 962c9a2d54f8313cbe1050e08a41c4cf96a9ae0d (diff) | |
| download | bcm5719-llvm-932e1c392426b692d72c71a849ca94a0a20f9cb7.tar.gz bcm5719-llvm-932e1c392426b692d72c71a849ca94a0a20f9cb7.zip | |
Implement global merge optimization for global variables.
This commit implements two command line switches -global-merge-on-external
and -global-merge-aligned, and both of them are false by default, so this
optimization is disabled by default for all targets.
For ARM64, some back-end behaviors need to be tuned to get this optimization
further enabled.
llvm-svn: 208934
Diffstat (limited to 'llvm/lib/Target/AArch64/AArch64ISelLowering.h')
| -rw-r--r-- | llvm/lib/Target/AArch64/AArch64ISelLowering.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64ISelLowering.h b/llvm/lib/Target/AArch64/AArch64ISelLowering.h index 070db94808f..9818b7a2dcb 100644 --- a/llvm/lib/Target/AArch64/AArch64ISelLowering.h +++ b/llvm/lib/Target/AArch64/AArch64ISelLowering.h @@ -386,6 +386,10 @@ public: /// be used for loads / stores from the global. unsigned getMaximalGlobalOffset() const override; + /// getGlobalMergeAlignment - Set alignment to be the max size of merged + /// global variable data structure, and make it aligned up to power of 2. + unsigned getGlobalMergeAlignment(StructType *MergedTy) const override; + protected: std::pair<const TargetRegisterClass*, uint8_t> findRepresentativeClass(MVT VT) const override; |

