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
Sam Tobin-Hochstadt
696583582b
Add struct constructor table.
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
Sam Tobin-Hochstadt
1a678bd5de
Fix parsing of maybe-optimize
result.
...
Merge to 5.3.2.
2013-01-11 18:15:53 -05:00
Asumu Takikawa
f577b49a4d
Fix polydots
...
- parsing of polydots values was fixed
- certain polydots error cases are now reported
- the custom application rule for values was fixed
Closes PR 13365
Please merge to 5.3.2
2013-01-09 18:12:45 -05:00
Asumu Takikawa
27d3042ad6
Use correct contract for Procedure type
...
The only problem with this contract is that it does
not produce a very good error message
2013-01-08 20:03:16 -05:00
Asumu Takikawa
9c0a611b59
Disallow duplicate type variable declarations
...
Closes PR 13416
Please merge to 5.3.2
2013-01-08 14:50:08 -05:00
Vincent St-Amour
057a2bd0d2
Extend type of min to preserve fixnumness.
2013-01-07 17:00:32 -05:00
Vincent St-Amour
81cccb4c8f
Fix fixnum comparisons to prove more bounds.
2013-01-02 16:55:28 -05:00
Vincent St-Amour
4137eb9e73
Make let: annotations optional.
2013-01-01 18:14:52 -05:00
Neil Toronto
e06f31c94e
More precise return type for `magnitude' (it always returns nonnegative)
2012-12-31 14:17:17 -07:00
Sam Tobin-Hochstadt
0d01db8543
Fix type of log-message
.
2012-12-30 22:14:44 -05:00
Matthew Flatt
f2d870859a
logging: allow name in `log-message', report it in a log-receiver evt
...
The synchronization result of a log receiver is now a vector of four
values, instead of three, where the last one reports the name.
Also, an optional argument to `make-logger' provides a notification
callback for each event sent to the logger.
These changes enable more control over loggers and events. Suppose
that you have processes A and B, and you want all log events of A
to be visible to B, but not vice-versa. Furthermore, you want the
log events to appear at B in the right order: if A logs an event
before B, then A's event should arrive at a log receiver's before
B's. Now that a log receiver gets the name associated with the
original event, and now that the name can be re-sent in a
`log-receiver', it's possible to give A and B separate loggers and
send all of the events from A's logger to B's logger. Furthermore,
you can use the notification callback so that when an event is logged
in B, you can make sure that all available events from from A's
logger have been transferred to B's logger.
2012-12-27 14:12:40 -06:00
Matthew Flatt
4a57db4448
add (system-type 'word)
...
Returns 32 or 64 to indicate whether Racket is running as a
32-bit program or a 64-bit program.
2012-12-24 06:38:53 -07:00
Asumu Takikawa
acda049f7d
Add define: form variant for polymorphic non-function values
2012-12-19 13:08:41 -05:00
Vincent St-Amour
8c66be33e7
Fix contract generation for functions with optionals and keyword arguments.
...
Closes PR13354.
2012-12-17 13:57:32 -05:00
Vincent St-Amour
ec673fd58d
Allow #:unless' in
for:'.
...
Also allow `#:break' and `#:final' in all the `for:' macros.
Unfortunately, the expansion of `#:break' and `#:final' cannot be
typechecked at the moment.
2012-12-17 13:57:31 -05:00