Revision tags: llvmorg-3.9.0-rc1 |
|
#
5a7538be |
| 01-Jul-2016 |
Duncan P. N. Exon Smith <dexonsmith@apple.com> |
CodeGen: Use MachineInstr& more in MachineTraceMetrics, NFC
Push MachineInstr& through helper APIs for consistency. This doesn't remove any more implicit conversions, but it's a nice cleanup after
CodeGen: Use MachineInstr& more in MachineTraceMetrics, NFC
Push MachineInstr& through helper APIs for consistency. This doesn't remove any more implicit conversions, but it's a nice cleanup after r274300.
llvm-svn: 274301
show more ...
|
#
5d2b938b |
| 30-Jun-2016 |
Duncan P. N. Exon Smith <dexonsmith@apple.com> |
CodeGen: Use MachineInstr& in MachineTraceMetrics, NFC
This avoids an implicit conversion from iterator to pointer.
llvm-svn: 274300
|
Revision tags: llvmorg-3.8.1, llvmorg-3.8.1-rc1, llvmorg-3.8.0, llvmorg-3.8.0-rc3 |
|
#
e59c8af7 |
| 22-Feb-2016 |
Duncan P. N. Exon Smith <dexonsmith@apple.com> |
Reapply "CodeGen: Use references in MachineTraceMetrics::Trace, NFC"
This reverts commit r261510, effectively reapplying r261509. The original commit missed a caller in AArch64ConditionalCompares.
Reapply "CodeGen: Use references in MachineTraceMetrics::Trace, NFC"
This reverts commit r261510, effectively reapplying r261509. The original commit missed a caller in AArch64ConditionalCompares.
Original commit message:
Pass non-null arguments by reference in MachineTraceMetrics::Trace, simplifying future work to remove implicit iterator => pointer conversions.
llvm-svn: 261511
show more ...
|
#
0cc90a91 |
| 22-Feb-2016 |
Duncan P. N. Exon Smith <dexonsmith@apple.com> |
Revert "CodeGen: Use references in MachineTraceMetrics::Trace, NFC"
This reverts commit r261509. I'm not sure how this compiled locally, but something was out of whack.
llvm-svn: 261510
|
#
83d3476f |
| 22-Feb-2016 |
Duncan P. N. Exon Smith <dexonsmith@apple.com> |
CodeGen: Use references in MachineTraceMetrics::Trace, NFC
Pass non-null arguments by reference in MachineTraceMetrics::Trace, simplifying future work to remove implicit iterator => pointer conversi
CodeGen: Use references in MachineTraceMetrics::Trace, NFC
Pass non-null arguments by reference in MachineTraceMetrics::Trace, simplifying future work to remove implicit iterator => pointer conversions.
llvm-svn: 261509
show more ...
|
#
7a083814 |
| 18-Feb-2016 |
Richard Trieu <rtrieu@google.com> |
Remove uses of builtin comma operator.
Cleanup for upcoming Clang warning -Wcomma. No functionality change intended.
llvm-svn: 261270
|
Revision tags: llvmorg-3.8.0-rc2, llvmorg-3.8.0-rc1 |
|
#
87d2ae23 |
| 09-Dec-2015 |
Sanjay Patel <spatel@rotateright.com> |
use range-based for loops; NFCI
llvm-svn: 255171
|
Revision tags: llvmorg-3.7.1, llvmorg-3.7.1-rc2, llvmorg-3.7.1-rc1, llvmorg-3.7.0, llvmorg-3.7.0-rc4, llvmorg-3.7.0-rc3, studio-1.4, llvmorg-3.7.0-rc2 |
|
#
f2fa58e7 |
| 23-Jul-2015 |
Sanjay Patel <spatel@rotateright.com> |
fix crash in machine trace metrics due to processing dbg_value instructions (PR24199)
The test in PR24199 ( https://llvm.org/bugs/show_bug.cgi?id=24199 ) crashes because machine trace metrics was no
fix crash in machine trace metrics due to processing dbg_value instructions (PR24199)
The test in PR24199 ( https://llvm.org/bugs/show_bug.cgi?id=24199 ) crashes because machine trace metrics was not ignoring dbg_value instructions when calculating data dependencies.
The machine-combiner pass asks machine trace metrics to calculate an instruction trace, does some reassociations, and calls MachineInstr::eraseFromParentAndMarkDBGValuesForRemoval() along with MachineTraceMetrics::invalidate(). The dbg_value instructions have their operands invalidated, but the instructions are not expected to be deleted.
On a subsequent loop iteration of the machine-combiner pass, machine trace metrics would be called again and die while accessing the invalid debug instructions.
Differential Revision: http://reviews.llvm.org/D11423
llvm-svn: 243057
show more ...
|
Revision tags: llvmorg-3.7.0-rc1 |
|
#
d2b7144c |
| 06-Jul-2015 |
Sanjay Patel <spatel@rotateright.com> |
use range-based for loops; NFCI
llvm-svn: 241468
|
#
6d4c3e3d |
| 06-Jul-2015 |
Sanjay Patel <spatel@rotateright.com> |
use range-based for loops; NFCI
llvm-svn: 241463
|
#
82db3b7d |
| 04-Jul-2015 |
Sanjay Patel <spatel@rotateright.com> |
use valid bits to avoid unnecessary machine trace metric recomputations
Although this does cut the number of traces recomputed by ~10% for the test case mentioned in http://reviews.llvm.org/D10460,
use valid bits to avoid unnecessary machine trace metric recomputations
Although this does cut the number of traces recomputed by ~10% for the test case mentioned in http://reviews.llvm.org/D10460, it doesn't make a dent in the overall performance. That example needs to be more selective when invalidating traces.
llvm-svn: 241393
show more ...
|
#
0ca438c6 |
| 30-Jun-2015 |
Sanjay Patel <spatel@rotateright.com> |
use range-based for loops; NFCI
llvm-svn: 241076
|
Revision tags: llvmorg-3.6.2, llvmorg-3.6.2-rc1 |
|
#
f00654e3 |
| 23-Jun-2015 |
Alexander Kornienko <alexfh@google.com> |
Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC)
Apparently, the style needs to be agreed upon first.
llvm-svn: 240390
|
#
70bc5f13 |
| 19-Jun-2015 |
Alexander Kornienko <alexfh@google.com> |
Fixed/added namespace ending comments using clang-tidy. NFC
The patch is generated using this command:
tools/clang/tools/extra/clang-tidy/tool/run-clang-tidy.py -fix \ -checks=-*,llvm-namespace-c
Fixed/added namespace ending comments using clang-tidy. NFC
The patch is generated using this command:
tools/clang/tools/extra/clang-tidy/tool/run-clang-tidy.py -fix \ -checks=-*,llvm-namespace-comment -header-filter='llvm/.*|clang/.*' \ llvm/lib/
Thanks to Eugene Kosov for the original patch!
llvm-svn: 240137
show more ...
|
#
e41e146c |
| 29-May-2015 |
Matthias Braun <matze@braunis.de> |
CodeGen: Use mop_iterator instead of MIOperands/ConstMIOperands
MIOperands/ConstMIOperands are classes iterating over the MachineOperand of a MachineInstr, however MachineInstr::mop_iterator does th
CodeGen: Use mop_iterator instead of MIOperands/ConstMIOperands
MIOperands/ConstMIOperands are classes iterating over the MachineOperand of a MachineInstr, however MachineInstr::mop_iterator does the same thing.
I assume these two iterators exist to have a uniform interface to iterate over the operands of a machine instruction bundle and a single machine instruction. However in practice I find it more confusing to have 2 different iterator classes, so this patch transforms (nearly all) the code to use mop_iterators.
The only exception being MIOperands::anlayzePhysReg() and MIOperands::analyzeVirtReg() still needing an equivalent, I leave that as an exercise for the next patch.
Differential Revision: http://reviews.llvm.org/D9932
This version is slightly modified from the proposed revision in that it introduces MachineInstr::getOperandNo to avoid the extra counting variable in the few loops that previously used MIOperands::getOperandNo.
llvm-svn: 238539
show more ...
|
#
99b3aa35 |
| 21-May-2015 |
Sanjay Patel <spatel@rotateright.com> |
use range-based for-loops; NFCI
llvm-svn: 237917
|
Revision tags: llvmorg-3.6.1, llvmorg-3.6.1-rc1 |
|
#
25db4f41 |
| 15-Apr-2015 |
Daniel Berlin <dberlin@dberlin.org> |
Add range iterators for post order and inverse post order. Use them
llvm-svn: 235026
|
Revision tags: llvmorg-3.5.2, llvmorg-3.5.2-rc1, llvmorg-3.6.0, llvmorg-3.6.0-rc4, llvmorg-3.6.0-rc3, llvmorg-3.6.0-rc2 |
|
#
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 |
|
#
70573dcd |
| 19-Nov-2014 |
David Blaikie <dblaikie@gmail.com> |
Update SetVector to rely on the underlying set's insert to return a pair<iterator, bool>
This is to be consistent with StringSet and ultimately with the standard library's associative container inse
Update SetVector to rely on the underlying set's insert to return a pair<iterator, bool>
This is to be consistent with StringSet and ultimately with the standard library's associative container insert function.
This lead to updating SmallSet::insert to return pair<iterator, bool>, and then to update SmallPtrSet::insert to return pair<iterator, bool>, and then to update all the existing users of those functions...
llvm-svn: 222334
show more ...
|
Revision tags: 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 |
|
#
e1d12948 |
| 27-Aug-2014 |
Craig Topper <craig.topper@gmail.com> |
Simplify creation of a bunch of ArrayRefs by using None, makeArrayRef or just letting them be implicitly created.
llvm-svn: 216525
|
Revision tags: 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 ...
|
#
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
|
#
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 ...
|
Revision tags: llvmorg-3.5.0-rc1, llvmorg-3.4.2, llvmorg-3.4.2-rc1 |
|
#
f74bde67 |
| 30-Apr-2014 |
Alexey Samsonov <samsonov@google.com> |
Convert more loops to range-based equivalents
llvm-svn: 207714
|