Commit Graph

177 Commits

Author SHA1 Message Date
Vincent St-Amour
4933d9f00f Separate TR optimization and info logs. 2013-01-11 18:40:21 -05:00
Vincent St-Amour
677550cbe2 Major refactoring. 2013-01-11 18:40:21 -05:00
Vincent St-Amour
ebf25a3cdb Prune inlining recommendations more aggressively. 2013-01-11 18:40:21 -05:00
Vincent St-Amour
defa1b96ff Refactoring. 2013-01-11 18:40:21 -05:00
Vincent St-Amour
a2f1e33d00 Scale badness using profile data. 2013-01-11 18:40:21 -05:00
Vincent St-Amour
4271675f69 Report potential exact rational arithmetic in hot code. 2013-01-11 18:40:20 -05:00
Vincent St-Amour
6e9ed24eae Implement TR pruning. 2013-01-11 18:40:20 -05:00
Vincent St-Amour
9c73563705 Report struct constructors used in hot code. 2013-01-11 18:40:20 -05:00
Vincent St-Amour
a474eb9838 Report hidden parameter accesses. 2013-01-11 18:40:20 -05:00
Vincent St-Amour
cc168d148d Log operations with hidden costs from TR.
Currently only implicit parameter dereferences.
2013-01-11 18:40:20 -05:00
Vincent St-Amour
8170eda45c Keep reports for functions that contain hot functions.
Helps for curried functions.
2013-01-11 18:40:20 -05:00
Vincent St-Amour
48a55f7e74 Revert "Recommend turning "hot" higher-order calls into first-order calls."
This reverts commit bb0c20ce6eff2112a25eb1f98d394b36da0128f8.

Was never useful in practice.
2013-01-11 18:40:20 -05:00
Vincent St-Amour
89948b2954 Recommend turning "hot" higher-order calls into first-order calls. 2013-01-11 18:40:20 -05:00
Vincent St-Amour
db6b0df526 Adjust definition of interesting call sites to not rely on inlining info.
That information may not be available.
2013-01-11 18:40:20 -05:00
Vincent St-Amour
bba3d66fb1 Factor out the concept of interesting callers. 2013-01-11 18:40:19 -05:00
Vincent St-Amour
c66654e9c8 Allow producing multiple inliner report entries per function.
This also allows reporting one function while traversing another.
2013-01-11 18:40:19 -05:00
Vincent St-Amour
fa01a5304a Recognize "interesting" call sites.
These are call sites where one of the callees accounts for a large portion
of the total time of its caller.

When such call sites are considered inlining failures, we can refine
recommendations.

The concept of interesting call site is also useful as a building block
for higher-level patterns.
2013-01-11 18:40:19 -05:00
Vincent St-Amour
bb9f4e4634 Report "bridgehead" inlinings as successes, even if further inlinings fail. 2013-01-11 18:40:19 -05:00
Vincent St-Amour
28d4eb4d22 Use the right version of the log to determine misses. 2013-01-11 18:40:19 -05:00
Vincent St-Amour
e02333a3c8 Fix handling of self out-of-fuel. 2013-01-11 18:40:19 -05:00
Vincent St-Amour
d1a2815197 Refactoring. 2013-01-11 18:40:19 -05:00
Vincent St-Amour
b751907e24 Keep TR and mzc logs separate.
Simplifies post-processing.
2013-01-11 18:40:19 -05:00
Vincent St-Amour
8ace14bad9 Refactoring. 2013-01-11 18:40:19 -05:00
Vincent St-Amour
9f415ecd8a When we have profiling information, prune inlining reports about cold code. 2013-01-11 18:40:19 -05:00
Vincent St-Amour
c8d3aea6dd Rethink profiler integration.
Requires the program to manually call the profiler. This dumps the results in
a separate file.
2013-01-11 18:40:18 -05:00
Vincent St-Amour
5bf52e9663 Keep profile entries that come from other files.
Otherwise, hot function set is only populated from the current file.
2013-01-11 18:40:18 -05:00
Vincent St-Amour
c7f8eff883 Prune profile info to only keep hot functions. 2013-01-11 18:40:18 -05:00
Vincent St-Amour
f6b60b2f90 Propagate profile information to inlining analysis. 2013-01-11 18:40:18 -05:00
Vincent St-Amour
a1c93f466c Only keep profile reports from the relevant file. 2013-01-11 18:40:18 -05:00
Vincent St-Amour
9fd9638252 Refactoring. 2013-01-11 18:40:18 -05:00
Vincent St-Amour
4c7e319cd2 Put sandbox management in its own file.
To avoid circular dependencies.
2013-01-11 18:40:18 -05:00
Vincent St-Amour
18e4cbbb40 First stab at hooking the profiler up to OC.
Profiling is done from inside the eval, to minimize noise.

Use samplers directly, to get access to the profiler's data structures.
2013-01-11 18:40:18 -05:00
Vincent St-Amour
5d4bbfaf6c Abstract out right file filtering. 2013-01-11 18:40:17 -05:00
Vincent St-Amour
a65d7532f2 Log output generated when OC expands/runs programs.
To be consistent with Check Syntax.
2013-01-11 18:40:17 -05:00
Vincent St-Amour
fa2cba1c5b Abstract out OC sandboxing. 2013-01-11 18:40:17 -05:00
Vincent St-Amour
ac58c45477 Disable optimization of mixed-mode arithmetic that may involve exact 0.
Exact 0 turns out to also be a corner case for addition.

At this point, mixed-mode optimizations pretty much only apply for mixes
of floats and literal non-zero non-floats.
2012-12-04 19:29:16 -05:00
Vincent St-Amour
45a3b9f48d Don't warn about exact arithmetic for inexact numbers. 2012-12-04 19:29:16 -05:00
Vincent St-Amour
93939f45d0 Don't optimize mixed-mode arithmetic if it would change results. 2012-12-04 19:29:16 -05:00
Vincent St-Amour
fb73bc8b0e Fix partial bounds checking elimination.
Closes PR13341.
2012-12-04 19:29:16 -05:00
Vincent St-Amour
a84e04e1e4 Use the regular Racket reader, not TR's. 2012-12-04 19:29:16 -05:00
Vincent St-Amour
ca47b1c693 Be less aggressive about fixnum recommendations.
Reduces false positives.
2012-12-04 19:29:15 -05:00
Vincent St-Amour
6d231da14f Typo. 2012-12-04 19:29:15 -05:00
Vincent St-Amour
e4af200c89 Hide OC control panel if an error occurs during expansion. 2012-12-04 19:29:15 -05:00
Vincent St-Amour
9f9092b762 Fix optimization of unary float subtraction.
Closes PR13339.
2012-12-03 19:46:29 -05:00
Vincent St-Amour
e2007abd7a Heterogenous -> heterogenEous.
Found by Ray Racine.
2012-11-20 17:06:51 -05:00
Vincent St-Amour
149d8535eb More float conversion optimizations. 2012-10-14 15:35:50 -04:00
Vincent St-Amour
758e4ff112 Only recommend dropping exactness in truly inexact contexts.
Please merge to release.
2012-10-12 14:42:16 -04:00
Vincent St-Amour
7d317f1e96 Recommend float-specific operations in case of unexpected complex.
Please merge to release.
2012-10-09 16:58:04 -04:00
Vincent St-Amour
937c901ce7 Add separator before Optimization Coach right-click menu entry. 2012-10-02 11:24:07 -04:00
Vincent St-Amour
69873c8db8 Fix Optimization Coach's handling of paths with spaces. 2012-10-02 10:45:29 -04:00