Revision tags: llvmorg-3.6.1, llvmorg-3.6.1-rc1, llvmorg-3.5.2, llvmorg-3.5.2-rc1, llvmorg-3.6.0, llvmorg-3.6.0-rc4 |
|
#
70eb9c5a |
| 14-Feb-2015 |
Duncan P. N. Exon Smith <dexonsmith@apple.com> |
CodeGen: Canonicalize access to function attributes, NFC
Canonicalize access to function attributes to use the simpler API.
getAttributes().getAttribute(AttributeSet::FunctionIndex, Kind) => getF
CodeGen: Canonicalize access to function attributes, NFC
Canonicalize access to function attributes to use the simpler API.
getAttributes().getAttribute(AttributeSet::FunctionIndex, Kind) => getFnAttribute(Kind)
getAttributes().hasAttribute(AttributeSet::FunctionIndex, Kind) => hasFnAttribute(Kind)
Also, add `Function::getFnStackAlignment()`, and canonicalize:
getAttributes().getStackAlignment(AttributeSet::FunctionIndex) => getFnStackAlignment()
llvm-svn: 229208
show more ...
|
Revision tags: llvmorg-3.6.0-rc3, llvmorg-3.6.0-rc2 |
|
#
b1ca4e48 |
| 27-Jan-2015 |
Sanjay Patel <spatel@rotateright.com> |
remove function names from comments; NFC
llvm-svn: 227256
|
#
6b280777 |
| 27-Jan-2015 |
Sanjay Patel <spatel@rotateright.com> |
fix typos; NFC
llvm-svn: 227253
|
#
3d4276f0 |
| 27-Jan-2015 |
Eric Christopher <echristo@gmail.com> |
The subtarget is cached on the MachineFunction. Access it directly.
llvm-svn: 227173
|
Revision tags: llvmorg-3.6.0-rc1, llvmorg-3.5.1, llvmorg-3.5.1-rc2, llvmorg-3.5.1-rc1, llvmorg-3.5.0 |
|
#
11759457 |
| 02-Sep-2014 |
Pete Cooper <peter_cooper@apple.com> |
Change MCSchedModel to be a struct of statically initialized data.
This removes static initializers from the backends which generate this data, and also makes this struct match the other Tablegen ge
Change MCSchedModel to be a struct of statically initialized data.
This removes static initializers from the backends which generate this data, and also makes this struct match the other Tablegen generated structs in behaviour
Reviewed by Andy Trick and Chandler C
llvm-svn: 216919
show more ...
|
Revision tags: llvmorg-3.5.0-rc4, llvmorg-3.5.0-rc3 |
|
#
fe2c11ff |
| 13-Aug-2014 |
Gerolf Hoflehner <ghoflehner@apple.com> |
[MachineCombiner] Removal of dangling DBG_VALUES after combining [20598]
This is a cleaner solution to the problem described in r215431. When instructions are combined a dangling DBG_VALUE is remove
[MachineCombiner] Removal of dangling DBG_VALUES after combining [20598]
This is a cleaner solution to the problem described in r215431. When instructions are combined a dangling DBG_VALUE is removed. This resolves bug 20598.
llvm-svn: 215587
show more ...
|
#
97c383bc |
| 07-Aug-2014 |
Gerolf Hoflehner <ghoflehner@apple.com> |
MachineCombiner Pass for selecting faster instruction sequence on AArch64
Re-commit of r214832,r21469 with a work-around that avoids the previous problem with gcc build compilers
The work-around is
MachineCombiner Pass for selecting faster instruction sequence on AArch64
Re-commit of r214832,r21469 with a work-around that avoids the previous problem with gcc build compilers
The work-around is to use SmallVector instead of ArrayRef of basic blocks in preservesResourceLen()/MachineCombiner.cpp
llvm-svn: 215151
show more ...
|
Revision tags: llvmorg-3.5.0-rc2 |
|
#
d913448b |
| 04-Aug-2014 |
Eric Christopher <echristo@gmail.com> |
Remove the TargetMachine forwards for TargetSubtargetInfo based information and update all callers. No functional change.
llvm-svn: 214781
|
#
befa2153 |
| 03-Aug-2014 |
Saleem Abdulrasool <compnerd@compnerd.org> |
CodeGen: silence a warning
GCC 4.8.2 objects to the tautological condition in the assert as the unsigned value is guaranteed to be >= 0. Simplify the assertion by dropping the tautological conditio
CodeGen: silence a warning
GCC 4.8.2 objects to the tautological condition in the assert as the unsigned value is guaranteed to be >= 0. Simplify the assertion by dropping the tautological condition.
llvm-svn: 214671
show more ...
|
#
5e1207e5 |
| 03-Aug-2014 |
Gerolf Hoflehner <ghoflehner@apple.com> |
MachineCombiner Pass for selecting faster instruction sequence - target independent framework
When the DAGcombiner selects instruction sequences it could increase the critical path or resource l
MachineCombiner Pass for selecting faster instruction sequence - target independent framework
When the DAGcombiner selects instruction sequences it could increase the critical path or resource len.
For example, on arm64 there are multiply-accumulate instructions (madd, msub). If e.g. the equivalent multiply-add sequence is not on the crictial path it makes sense to select it instead of the combined, single accumulate instruction (madd/msub). The reason is that the conversion from add+mul to the madd could lengthen the critical path by the latency of the multiply.
But the DAGCombiner would always combine and select the madd/msub instruction.
This patch uses machine trace metrics to estimate critical path length and resource length of an original instruction sequence vs a combined instruction sequence and picks the faster code based on its estimates.
This patch only commits the target independent framework that evaluates and selects code sequences. The machine instruction combiner is turned off for all targets and expected to evolve over time by gradually handling DAGCombiner pattern in the target specific code.
This framework lays the groundwork for fixing rdar://16319955
llvm-svn: 214666
show more ...
|