History log of /llvm-project/llvm/lib/CodeGen/MachineCombiner.cpp (Results 101 – 110 of 110)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
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 ...


12345