summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM64/ARM64TargetTransformInfo.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [C++] Use 'nullptr'. Target edition.Craig Topper2014-04-251-1/+1
| | | | llvm-svn: 207197
* [ARM64] Enable feature predicates for NEON / FP / CRYPTO.Kevin Qin2014-04-231-6/+10
| | | | | | | | AArch64 has feature predicates for NEON, FP and CRYPTO instructions. This allows the compiler to generate code without using FP, NEON or CRYPTO instructions. llvm-svn: 206949
* [Modules] Fix potential ODR violations by sinking the DEBUG_TYPEChandler Carruth2014-04-221-1/+2
| | | | | | | definition below all of the header #include lines, lib/Target/... edition. llvm-svn: 206842
* AArch64/ARM64: add non-scalar lowering for more FCVT operations.Tim Northover2014-04-181-0/+4
| | | | llvm-svn: 206591
* [ARM64] Never hoist the shift value of a shift instruction.Juergen Ributzka2014-04-121-3/+7
| | | | | | | There is no need to check if we want to hoist the immediate value of an shift instruction. Simply return TCC_Free right away. llvm-svn: 206101
* [ARM64] Fix the cost model for cheap large constants.Juergen Ributzka2014-04-121-5/+9
| | | | | | | | | | | | | | Originally the cost model would give up for large constants and just return the maximum cost. This is not what we want for constant hoisting, because some of these constants are large in bitwidth, but are still cheap to materialize. This commit fixes the cost model to either return TCC_Free if the cost cannot be determined, or accurately calculate the cost even for large constants (bitwidth > 128). This fixes <rdar://problem/16591573>. llvm-svn: 206100
* ARM64: add an explicit cast to silence a silly warningSaleem Abdulrasool2014-04-101-2/+4
| | | | | | | | | | GCC 4.8 complains with: warning: enumeral and non-enumeral type in conditional expression Although this is silly and harmless in this case, add an explicit cast to silence the warning. llvm-svn: 205949
* [ARM64] Fix immediate cost calculation for types larger than i64.Juergen Ributzka2014-04-101-1/+1
| | | | | | | | | | The immediate cost calculation code was hitting an assertion in the included test case, because APInt was still internally 128-bits. Truncating it to 64-bits fixed the issue. Fixes <rdar://problem/16572521>. llvm-svn: 205947
* [Constant Hoisting][ARM64] Enable constant hoisting for ARM64.Juergen Ributzka2014-04-081-13/+131
| | | | | | | | This implements the target-hooks for ARM64 to enable constant hoisting. This fixes <rdar://problem/14774662> and <rdar://problem/16381500>. llvm-svn: 205791
* ARM64: initial backend importTim Northover2014-03-291-0/+326
This adds a second implementation of the AArch64 architecture to LLVM, accessible in parallel via the "arm64" triple. The plan over the coming weeks & months is to merge the two into a single backend, during which time thorough code review should naturally occur. Everything will be easier with the target in-tree though, hence this commit. llvm-svn: 205090
OpenPOWER on IntegriCloud