Revision tags: llvmorg-3.4.1, llvmorg-3.4.1-rc2 |
|
#
1b9dde08 |
| 22-Apr-2014 |
Chandler Carruth <chandlerc@gmail.com> |
[Modules] Remove potential ODR violations by sinking the DEBUG_TYPE define below all header includes in the lib/CodeGen/... tree. While the current modules implementation doesn't check for this kind
[Modules] Remove potential ODR violations by sinking the DEBUG_TYPE define below all header includes in the lib/CodeGen/... tree. While the current modules implementation doesn't check for this kind of ODR violation yet, it is likely to grow support for it in the future. It also removes one layer of macro pollution across all the included headers.
Other sub-trees will follow.
llvm-svn: 206837
show more ...
|
#
422b93dc |
| 21-Apr-2014 |
David Blaikie <dblaikie@gmail.com> |
Use unique_ptr to manage objects owned by the ScheduleDAGMI.
llvm-svn: 206784
|
#
c0196b1b |
| 14-Apr-2014 |
Craig Topper <craig.topper@gmail.com> |
[C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr.
llvm-svn: 206142
|
Revision tags: llvmorg-3.4.1-rc1 |
|
#
7c99ec5b |
| 31-Mar-2014 |
Paul Robinson <paul_robinson@playstation.sony.com> |
Disable each MachineFunctionPass for 'optnone' functions, unless that pass normally runs at optimization level None, or is part of the register allocation pipeline.
llvm-svn: 205228
|
#
24e685fd |
| 10-Mar-2014 |
Craig Topper <craig.topper@gmail.com> |
[C++11] Remove 'virtual' keyword from methods marked with 'override' keyword.
llvm-svn: 203444
|
#
b0f74b24 |
| 07-Mar-2014 |
Benjamin Kramer <benny.kra@googlemail.com> |
[C++11] Convert sort predicates into lambdas.
No functionality change.
llvm-svn: 203288
|
#
4584cd54 |
| 07-Mar-2014 |
Craig Topper <craig.topper@gmail.com> |
[C++11] Add 'override' keyword to virtual methods that override their base class.
llvm-svn: 203220
|
#
56440fd8 |
| 06-Mar-2014 |
Ahmed Charles <ahmedcharles@gmail.com> |
Replace OwningPtr<T> with std::unique_ptr<T>.
This compiles with no changes to clang/lld/lldb with MSVC and includes overloads to various functions which are used by those projects and llvm which ha
Replace OwningPtr<T> with std::unique_ptr<T>.
This compiles with no changes to clang/lld/lldb with MSVC and includes overloads to various functions which are used by those projects and llvm which have OwningPtr's as parameters. This should allow out of tree projects some time to move. There are also no changes to libs/Target, which should help out of tree targets have time to move, if necessary.
llvm-svn: 203083
show more ...
|
#
b6d0bd48 |
| 02-Mar-2014 |
Benjamin Kramer <benny.kra@googlemail.com> |
[C++11] Replace llvm::next and llvm::prior with std::next and std::prev.
Remove the old functions.
llvm-svn: 202636
|
#
73156025 |
| 02-Mar-2014 |
Craig Topper <craig.topper@gmail.com> |
Switch all uses of LLVM_OVERRIDE to just use 'override' directly.
llvm-svn: 202621
|
#
cb402911 |
| 24-Jan-2014 |
Alp Toker <alp@nuanti.com> |
Fix known typos
Sweep the codebase for common typos. Includes some changes to visible function names that were misspelt.
llvm-svn: 200018
|
#
4675351a |
| 22-Jan-2014 |
Andrew Trick <atrick@apple.com> |
Reformat a loop for basic hygeine. Self review.
llvm-svn: 199788
|
#
350ff2c0 |
| 21-Jan-2014 |
Andrew Trick <atrick@apple.com> |
Fix PR18572 - llc crash during GenericScheduler::initPolicy().
Generalized the heuristic that looks at the (very rough) size of the register file before enabling regpressure tracking.
llvm-svn: 199
Fix PR18572 - llc crash during GenericScheduler::initPolicy().
Generalized the heuristic that looks at the (very rough) size of the register file before enabling regpressure tracking.
llvm-svn: 199766
show more ...
|
#
7230b377 |
| 28-Dec-2013 |
Saleem Abdulrasool <compnerd@compnerd.org> |
CodeGen: silence a C++11 feature warning
llvm-svn: 198133
|
#
7afe4818 |
| 28-Dec-2013 |
Andrew Trick <atrick@apple.com> |
Uninitialized variable (in never taken path) after factoring.
llvm-svn: 198131
|
#
33e05d76 |
| 28-Dec-2013 |
Andrew Trick <atrick@apple.com> |
Added debugging options: -misched-only-func/block
llvm-svn: 198124
|
#
d14d7c20 |
| 28-Dec-2013 |
Andrew Trick <atrick@apple.com> |
Add a PostMachineScheduler pass with generic implementation.
PostGenericScheduler uses either the new machine model or the hazard checker for top-down scheduling. Most of the infrastructure for PreR
Add a PostMachineScheduler pass with generic implementation.
PostGenericScheduler uses either the new machine model or the hazard checker for top-down scheduling. Most of the infrastructure for PreRA machine scheduling is reused.
With a some tuning, this should allow MachineScheduler to be default for all ARM targets, including cortex-A9, using the new machine model. Likewise, with additional tuning, it should be able to replace PostRAScheduler for all targets.
The PostMachineScheduler pass does not currently run the AntiDepBreaker. There is less need for it on targets that are already running preRA MachineScheduler. I want to prove it's necessary before committing to the maintenance burden.
The PostMachineScheduler also currently removes kill flags and adds them all back later. This is a bit ridiculous. I'd prefer passes to directly use a liveness utility than rely on flags.
A test case that enables this scheduler will be included in a subsequent checkin that updates the A9 model.
llvm-svn: 198122
show more ...
|
#
17080b9b |
| 28-Dec-2013 |
Andrew Trick <atrick@apple.com> |
Stub out a PostMachineScheduler pass.
Placeholder and boilerplate for a PostRA MachineScheduler pass.
llvm-svn: 198120
|
#
d7f890ed |
| 28-Dec-2013 |
Andrew Trick <atrick@apple.com> |
Factor MI-Sched in preparation for post-ra scheduling support.
Factor the MachineFunctionPass into MachineSchedulerBase.
Split the DAG class into ScheduleDAGMI and SchedulerDAGMILive.
llvm-svn: 19
Factor MI-Sched in preparation for post-ra scheduling support.
Factor the MachineFunctionPass into MachineSchedulerBase.
Split the DAG class into ScheduleDAGMI and SchedulerDAGMILive.
llvm-svn: 198119
show more ...
|
Revision tags: llvmorg-3.4.0, llvmorg-3.4.0-rc3 |
|
#
fc127d11 |
| 07-Dec-2013 |
Andrew Trick <atrick@apple.com> |
Factor out the SchedRemainder/SchedBoundary from GenericScheduler strategy.
These helper classes take care of the book-keeping the drives the GenericScheduler heuristics. It is likely that developer
Factor out the SchedRemainder/SchedBoundary from GenericScheduler strategy.
These helper classes take care of the book-keeping the drives the GenericScheduler heuristics. It is likely that developers writing target-specific schedulers that work similarly to GenericScheduler will want to use these helpers too. The immediate goal is to develop a GenericPostScheduler that can run in place of the old PostRAScheduler, but will use the new machine model.
No functionality change intended.
llvm-svn: 196643
show more ...
|
#
f7760a24 |
| 06-Dec-2013 |
Andrew Trick <atrick@apple.com> |
comment grammar
llvm-svn: 196585
|
#
0d92abdf |
| 06-Dec-2013 |
Daniel Jasper <djasper@google.com> |
Fix bug introduced in r196517.
Not only does it trigger -Wparentheses, I think the assert actually relies on incorrect operator precedence.
Also, the grammar as questionable, but I might not know e
Fix bug introduced in r196517.
Not only does it trigger -Wparentheses, I think the assert actually relies on incorrect operator precedence.
Also, the grammar as questionable, but I might not know enough about the problem at hand.
llvm-svn: 196567
show more ...
|
#
5a22df49 |
| 05-Dec-2013 |
Andrew Trick <atrick@apple.com> |
MI-Sched: Model "reserved" processor resources.
This allows a target to use MI-Sched as an in-order scheduler that will model strict resource conflicts without defining a processor itinerary. Instea
MI-Sched: Model "reserved" processor resources.
This allows a target to use MI-Sched as an in-order scheduler that will model strict resource conflicts without defining a processor itinerary. Instead, the target can now use the new per-operand machine model and define in-order resources with BufferSize=0. For example, this would allow restricting the type of operations that can be formed into a dispatch group. (Normally NumMicroOps is sufficient to enforce dispatch groups).
If the intent is to model latency in in-order pipeline, as opposed to resource conflicts, then a resource with BufferSize=1 should be defined instead.
This feature is only casually tested as there are no in-tree targets using it yet. However, Hal will be experimenting with POWER7.
llvm-svn: 196517
show more ...
|
#
880e573d |
| 05-Dec-2013 |
Andrew Trick <atrick@apple.com> |
MI-Sched: handle latency of in-order operations with the new machine model.
The per-operand machine model allows the target to define "unbuffered" processor resources. This change is a quick, cheap
MI-Sched: handle latency of in-order operations with the new machine model.
The per-operand machine model allows the target to define "unbuffered" processor resources. This change is a quick, cheap way to model stalls caused by the latency of operations that use such resources. This only applies when the processor's micro-op buffer size is non-zero (Out-of-Order). We can't precisely model in-order stalls during out-of-order execution, but this is an easy and effective heuristic. It benefits cortex-a9 scheduling when using the new machine model, which is not yet on by default.
MI-Sched for armv7 was evaluated on Swift (and only not enabled because of a performance bug related to predication). However, we never evaluated Cortex-A9 performance on MI-Sched in its current form. This change adds MI-Sched functionality to reach performance goals on A9. The only remaining change is to allow MI-Sched to run as a PostRA pass.
I evaluated performance using a set of options to estimate the performance impact once MI sched is default on armv7: -mcpu=cortex-a9 -disable-post-ra -misched-bench -scheditins=false
For a simple saxpy loop I see a 1.7x speedup. Here are the llvm-testsuite results: (min run time over 2 runs, filtering tiny changes)
Speedups: | Benchmarks/BenchmarkGame/recursive | 52.39% | | Benchmarks/VersaBench/beamformer | 20.80% | | Benchmarks/Misc/pi | 19.97% | | Benchmarks/Misc/mandel-2 | 19.95% | | SPEC/CFP2000/188.ammp | 18.72% | | Benchmarks/McCat/08-main/main | 18.58% | | Benchmarks/Misc-C++/Large/sphereflake | 18.46% | | Benchmarks/Olden/power | 17.11% | | Benchmarks/Misc-C++/mandel-text | 16.47% | | Benchmarks/Misc/oourafft | 15.94% | | Benchmarks/Misc/flops-7 | 14.99% | | Benchmarks/FreeBench/distray | 14.26% | | SPEC/CFP2006/470.lbm | 14.00% | | mediabench/mpeg2/mpeg2dec/mpeg2decode | 12.28% | | Benchmarks/SmallPT/smallpt | 10.36% | | Benchmarks/Misc-C++/Large/ray | 8.97% | | Benchmarks/Misc/fp-convert | 8.75% | | Benchmarks/Olden/perimeter | 7.10% | | Benchmarks/Bullet/bullet | 7.03% | | Benchmarks/Misc/mandel | 6.75% | | Benchmarks/Olden/voronoi | 6.26% | | Benchmarks/Misc/flops-8 | 5.77% | | Benchmarks/Misc/matmul_f64_4x4 | 5.19% | | Benchmarks/MiBench/security-rijndael | 5.15% | | Benchmarks/Misc/flops-6 | 5.10% | | Benchmarks/Olden/tsp | 4.46% | | Benchmarks/MiBench/consumer-lame | 4.28% | | Benchmarks/Misc/flops-5 | 4.27% | | Benchmarks/mafft/pairlocalalign | 4.19% | | Benchmarks/Misc/himenobmtxpa | 4.07% | | Benchmarks/Misc/lowercase | 4.06% | | SPEC/CFP2006/433.milc | 3.99% | | Benchmarks/tramp3d-v4 | 3.79% | | Benchmarks/FreeBench/pifft | 3.66% | | Benchmarks/Ptrdist/ks | 3.21% | | Benchmarks/Adobe-C++/loop_unroll | 3.12% | | SPEC/CINT2000/175.vpr | 3.12% | | Benchmarks/nbench | 2.98% | | SPEC/CFP2000/183.equake | 2.91% | | Benchmarks/Misc/perlin | 2.85% | | Benchmarks/Misc/flops-1 | 2.82% | | Benchmarks/Misc-C++-EH/spirit | 2.80% | | Benchmarks/Misc/flops-2 | 2.77% | | Benchmarks/NPB-serial/is | 2.42% | | Benchmarks/ASC_Sequoia/CrystalMk | 2.33% | | Benchmarks/BenchmarkGame/n-body | 2.28% | | Benchmarks/SciMark2-C/scimark2 | 2.27% | | Benchmarks/Olden/bh | 2.03% | | skidmarks10/skidmarks | 1.81% | | Benchmarks/Misc/flops | 1.72% |
Slowdowns: | Benchmarks/llubenchmark/llu | -14.14% | | Benchmarks/Polybench/stencils/seidel-2d | -5.67% | | Benchmarks/Adobe-C++/functionobjects | -5.25% | | Benchmarks/Misc-C++/oopack_v1p8 | -5.00% | | Benchmarks/Shootout/hash | -2.35% | | Benchmarks/Prolangs-C++/ocean | -2.01% | | Benchmarks/Polybench/medley/floyd-warshall | -1.98% | | Polybench/linear-algebra/kernels/3mm | -1.95% | | Benchmarks/McCat/09-vor/vor | -1.68% |
llvm-svn: 196516
show more ...
|
#
bb1247b9 |
| 05-Dec-2013 |
Andrew Trick <atrick@apple.com> |
comment typo and reformat
llvm-svn: 196513
|