Andreas Neustifter
1f6ae81725
Added debug output for inherited passes that are invalidated.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90553 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-04 06:58:24 +00:00
Andreas Neustifter
8c30abec6d
Convert ProfileVerifier to template so it can be used for different types of ProfileInfo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90451 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-03 12:55:57 +00:00
Andreas Neustifter
1640f7e033
Do not create negative edge weights in ProfileEstimator.
...
Use integer values for weights to prevent rounding errors.
Make ProfileEstimator more robust in general CFGs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90449 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-03 12:41:14 +00:00
Andreas Neustifter
44299c9507
Use ProfileInfo-API in ProfileInfo Loader and do more assertions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90446 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-03 11:00:37 +00:00
Andreas Neustifter
e2baf6b455
Converted ProfileInfo to template, added more API for ProfileInfo-preserving.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90445 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-03 09:30:12 +00:00
Andreas Neustifter
059a983531
Cheap, mostly strict, stable sorting.
...
This is necessary for tests so the results are comparable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90320 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-02 15:57:15 +00:00
Andreas Neustifter
9233272679
Reapplied r81355 with the problems fixed.
...
(See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090907/086737.html and
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090907/086746.html )
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82039 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-16 11:35:50 +00:00
Andreas Neustifter
ad80981a10
Preserve ProfileInfo during CodeGenPrepare.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82034 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-16 09:26:52 +00:00
Andreas Neustifter
b1b4c0187b
Bugfix. Sorry.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81517 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-11 08:43:15 +00:00
Andreas Neustifter
8a58c180c2
Make ProfileEstimator even more robust on general CFGs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81516 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-11 08:39:33 +00:00
Andreas Neustifter
0c0de66ea4
Make ProfileEstimator more robust on general CFGs.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81450 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-10 16:30:38 +00:00
Andreas Neustifter
b4b1c9fa23
Cleaned up code by factoring out common portions of edge loading into function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81438 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-10 07:12:35 +00:00
Andreas Neustifter
eadcdc564d
Reverted r81358.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81364 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-09 18:19:35 +00:00
Andreas Neustifter
ff5dfdff56
Preserve ProfileInfo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81360 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-09 17:53:39 +00:00
Andreas Neustifter
07abe17bd2
Add the first functions for updating ProfileInfo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81359 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-09 17:52:57 +00:00
Andreas Neustifter
7fd7061de0
Cleaned up code by factoring out common portions of edge loading into funcion.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81358 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-09 17:51:39 +00:00
Andreas Neustifter
e2ad47e415
Hide all cscope files.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81350 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-09 16:47:12 +00:00
Andreas Neustifter
04a8aaf42d
Updated svn:ignore to hide *.cmx files.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81349 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-09 16:45:41 +00:00
Andreas Neustifter
43b1b0e4ff
Fixed wrong storage option for ProfileVerifierDisableAssertions.
...
Fixed non working -profile-verifier-noassert option.
Fixed missing newline in debugEntry().
Cleaned up assert messages. (assert(0 && Message) is still shown, but the message is printed before.)
When verifiying loaded profiles the ProfileVerifier got confused when block was a setjmp target, this is checked now.
When verifiying loaded profiles the ProfileVerifier got confused when block eventually reaching an exit(), this is checked now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81338 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-09 13:01:03 +00:00
Andreas Neustifter
1f3b00272a
Updated ProfileInfo to have clean seperation between different sentinels.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81335 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-09 12:48:26 +00:00
Andreas Neustifter
31dcbc3b4a
Prevent warnings on compilers for which its not clear that assert won't return.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81044 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-04 21:22:04 +00:00
Andreas Neustifter
365b18eba6
Updated tests to use ProfileVerifer to test ProfileLoader and ProfileEstimator.
...
(Keep disabled test disabled until selfhosted build issue is resolved.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81008 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-04 17:21:59 +00:00
Andreas Neustifter
e8d372e48d
Cleaned up ProfileVerifierPass.
...
(See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090831/086219.html )
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81007 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-04 17:15:10 +00:00
Andreas Neustifter
ed1ac4ae8e
Converted MaximumSpanningTree algorithm to a generic template, this could go
...
into llvm/ADT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81001 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-04 12:34:44 +00:00
Andreas Neustifter
f0d568d38b
Fix build warning.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80912 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-03 09:11:10 +00:00
Andreas Neustifter
3985943871
Code Cleanup.
...
Removed inverted flag form MaximumSpanningTree, also do not handle so much
information to MaximumSpanningTree.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80911 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-03 08:52:52 +00:00
Andreas Neustifter
4c2c53353e
Code Cleanup.
...
(See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090831/086139.html )
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80909 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-03 08:41:05 +00:00
Andreas Neustifter
ca172ae477
Removed temporarily because of breaking Darwin builds.
...
(See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090831/086214.html )
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80799 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-02 16:47:24 +00:00
Andreas Neustifter
793d4a8467
Changed profiling-tool-chain.ll test to use optimal-edge-profiling instead of
...
edge-profiling, this is more useful since the loading of the
optimal-edge-profiling is more complicated.
The edge-profiling is tested in edge-profiling.ll where only the
instrumentation is tested.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80791 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-02 14:24:08 +00:00
Andreas Neustifter
2252d481d6
Sort edges in MaximumSpanningTree more stable in case of equal weight.
...
(See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090824/085890.html )
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80789 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-02 14:03:11 +00:00
Andreas Neustifter
8f123b85c6
Changed set of BlocksToInstrument to set of InsertedBlocks that do not have to
...
be instrumented.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80788 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-02 13:59:05 +00:00
Andreas Neustifter
9341cdc217
Code cleanups and added comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80781 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-02 12:38:39 +00:00
Andreas Neustifter
da5ea94554
OptimalEdgeProfiling: Reading in Profiles.
...
This enables LLVM to read the OptimalEdgeProfiles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80715 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01 19:08:51 +00:00
Andreas Neustifter
ad09d42e04
Addedum to r80712, forgot to add files.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80713 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01 19:05:58 +00:00
Andreas Neustifter
f771dae69a
OptimalEdgeProfiling: Creation of profiles.
...
This adds the instrumentation and runtime part of OptimalEdgeProfiling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80712 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01 19:03:44 +00:00
Andreas Neustifter
19531d113c
Small fix in ProfileEstimator that eliminates duplicated code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80711 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01 19:01:59 +00:00
Andreas Neustifter
62353a8d13
Preparation for Optimal Edge Profiling:
...
Add statistics for regular edge profiling, this enables the comparation of the
number of edges inserted by regular and optimal edge profiling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80668 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01 10:08:39 +00:00
Andreas Neustifter
e885af9fb7
Preparation for Optimal Edge Profiling:
...
Optimal edge profiling is only possible when blocks with no predecessors get an
virtual edge (BB,0) that counts the execution frequencies of this
function-exiting blocks.
This patch makes the necessary changes before actually enabling optimal edge profiling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80667 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01 10:06:05 +00:00
Andreas Neustifter
e7ddcfdebe
Preparation for Optimal Edge Profiling:
...
This adds a pass to verify the current profile against the flow conditions.
This is very helpful when later on trying to perserve the profiling information
during all passes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80666 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01 08:48:42 +00:00
Andreas Neustifter
1c29357c52
Read Makefile.config before using LLVMGCC.
...
See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090824/085828.html
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80372 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-28 16:13:45 +00:00
Andreas Neustifter
6ef116d9dc
Preparation for Optimal Edge Profiling:
...
This implements the maximum spanning tree algorithm on CFGs according to
weights given by the ProfileEstimator. This is then used to implement Optimal
Edge Profiling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80358 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-28 11:28:24 +00:00
Andreas Neustifter
1896727eae
Remove profiling output file because two consecutive runs of make check give
...
error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80357 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-28 10:38:26 +00:00
Andreas Neustifter
cf4f7199c9
Removed unnecessary file creation during test.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80356 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-28 10:07:41 +00:00
Andreas Neustifter
82fdcede12
Pulled all tests into one test. Removed some redundant tests. Rename.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80355 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-28 10:00:28 +00:00
Andreas Neustifter
79331b2fcd
Since all std::cout is gone, also remove iostream include.
...
(See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090824/085620.html )
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80349 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-28 06:48:25 +00:00
Andreas Neustifter
798261ccf5
Readded test from r79615, this tests the complete profiling tool chain. Furhter
...
tests can test only parts of this system.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80348 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-28 06:41:00 +00:00
Andreas Neustifter
0ef68e8fbb
Bugfix for r80100, forgot include. Sorry.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80101 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26 15:18:38 +00:00
Andreas Neustifter
ff271e1353
Implemented comments from Daniel Dunbar.
...
(See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090817/084958.html )
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80100 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26 15:13:44 +00:00
Andreas Neustifter
3772fb11fe
Moved isDeclaration() check further down to allow for function counts for
...
declarations if necessary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80084 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26 13:33:09 +00:00
Andreas Neustifter
30457f2cab
Changed std::cout to outs(), retaining formating.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80076 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-26 09:05:21 +00:00
Andreas Neustifter
cf48efcf3d
Read profile files as binary as proposed in
...
http://lists.cs.uiuc.edu/pipermail/llvmdev/2009-August/025020.html .
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79983 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-25 12:53:27 +00:00
Andreas Neustifter
ade1a22522
Add llvm_start_edge_profiling to exported symbols for libprofile_rt.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79944 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-24 21:41:37 +00:00
Andreas Neustifter
96135b617a
This patch cleans up the ProfileInfo by
...
*) introducing new data type and export function of edge info for whole function (preparation for next patch).
*) renaming variables to make clear distinction between data and containers that contain this data.
*) updated comments and whitespaces.
*) made ProfileInfo::MissingValue a double (as it should be...).
(Discussed at http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090817/084955.html .)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79940 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-24 21:37:48 +00:00
Andreas Neustifter
4678c2d438
Removed profiling test, lli not available on all platforms.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79633 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-21 15:27:35 +00:00
Andreas Neustifter
e879bdad49
Added tests for Profiling Infrastructure.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79615 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-21 09:36:28 +00:00
Andreas Neustifter
0a324aa53a
Broke line before break.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79404 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-19 05:44:39 +00:00