Commit Graph

19 Commits

Author SHA1 Message Date
Hannes Wallnöfer
4f8e9a09e2 8059236: Memory leak when executing octane pdfjs with optimistic typing
Reviewed-by: jlaskey, attila
2014-10-08 15:50:36 +02:00
Marcus Lagergren
da0b4cb7df 8025435: Optimistic builtins support, implemented initial optimistic versions of push, pop, and charCodeAt
Reviewed-by: attila, hannesw, sundar
2014-09-25 15:53:47 +02:00
Marcus Lagergren
5c93b19922 8048869: Reduce compile time by about 5% by removing the Class.casts from the AST nodes
Removed the native casts that slow down the compiler unnecessarily. I also modified the compile-octane harness so that it can run with --verbose and --iterations flags so that you can run the compiler for an arbitrary time, gathering a mission control executing profile.

Reviewed-by: attila, jlaskey
2014-07-29 14:21:45 -07:00
Attila Szegedi
5ec014a881 8044638: Tidy up Nashorn codebase for code standards
Reviewed-by: lagergren, sundar
2014-06-04 13:08:57 +02:00
Marcus Lagergren
a6e90a4ba3 8044012: Integrate the latest best known performance flags int ant octane jobs, and make sure that it's easy to compare 'ant octane-nashorn' and 'ant octane-v8' at the push of a button. (or rather; the entry of a command line)
Reviewed-by: jlaskey, sundar
2014-05-27 21:25:07 +02:00
Marcus Lagergren
3d7f88fb31 8043504: Octane test harness was missing argument to print_always at one callsite, causing erroneous logging
Reviewed-by: sundar, attila
2014-05-20 10:40:28 +02:00
Attila Szegedi
64fd9c191a 8042118: Separate types from symbols
Reviewed-by: hannesw, lagergren
2014-05-13 11:30:40 +02:00
Marcus Lagergren
2f01820f6d 8041625: AccessorProperty currentType must only by Object.class when non-primitive, and scoping followup problem for lazily generated with bodies
Reviewed-by: jlaskey, attila
2014-05-02 18:22:29 +02:00
Marcus Lagergren
6163a42a8e 8033105: Make sure Nashorn test harness can run zlib benchmark
Reviewed-by: attila, hannesw
2014-04-22 14:09:46 +02:00
Marcus Lagergren
89f65d6006 8040089: Apply to call transform was incomplete. Now passes all tests and performance is back
Reviewed-by: hannesw, attila, sundar, jlaskey
2014-04-17 20:01:19 +02:00
Attila Szegedi
e9e7dd2ec1 8035820: Optimistic recompilation
Co-authored-by: Marcus Lagergren <marcus.lagergren@oracle.com>
Reviewed-by: hannesw, jlaskey, sundar
2014-02-26 13:17:57 +01:00
Marcus Lagergren
c502f1025e 8029780: "ant externals" broke our test harness with the latest version of the octane benchmarks
Reviewed-by: attila, sundar
2013-12-11 18:09:34 +01:00
Marcus Lagergren
d1cfaae2c6 8015447: Octane harness fixes for rhino and entire test runs: ant octane, ant octane-v8, ant octane-rhino
Reviewed-by: sundar, jlaskey
2013-05-27 17:57:07 +02:00
Marcus Lagergren
a34fd412c5 8014219: Make the run-octane harness more deterministic by not measuring elapsed time every iteration. Also got rid of most of the run logic in base.js and call benchmarks directly for the same purpose
Reviewed-by: jlaskey, attila
2013-05-27 13:11:13 +02:00
Marcus Lagergren
2aeaf10fff 8009982: Lazy execution bugfix. Added lazy sunspider unit test. Added mandreel to compile-octane test. Fixed warnings
Reviewed-by: sundar, jlaskey
2013-03-14 14:49:55 +01:00
Marcus Lagergren
30b950d2d2 8007062: Split Lower up into Lower/Attr/FinalizeTypes. Integrate AccessSpecalizer into FinalizeTypes
Lower suffered from being a "God class" trying to do everything at once.  As Nashorn code generation has grown, so has Lower. It does several post processing passes, tries to do several things at once even though all type information isn't in place, adjusting state afterwards and so on. It also performs control flow analysis, type attribution and constant folding, and  everything else code generation related before byte code emission. I have now separated the compilation process into Lower (create low level nodes from high level ones, copy code such as finally block inlining etc), Attr (assign types and symbols to all nodes - freeze slot and scope information) and FinalizeTypes (insert explicit casts, specialize invoke dynamic types for scope accesses). I've removed the kludgy AccessSpecializer, as this now integrates naturally with typing. Everything is now much easier to read and each module performs only one thing. I have added separate loggers for the separate tiers. In the process I have also fixed: (1) problems with type coercion (see test/script/basic/typecoercion.js, basically our coercion was too late and our symbol inference was erroneous. This only manifested itself in very rare occasions where toNumber coercion has side effects, such as for example when valueOf is overridden)  (2) copying literal nodes (literal copy did not use the superclass copy, which made all the Node specific fields not to be copied  (3) erroneous literal tokenization (literals shouldn't always just inherit token information from whatever node that creates them) (4) splitter weighnodes - unary nodes were considered weightless  (4) removed the hateful and kludgy "VarNode.shouldAppend", which really isn't needed when we have an attribution phase that determines self reference symbols (the only thing it was used for) (5) duplicate line number issues in the parser (6) convert bug in CodeGenerator for intermediate results of scope accesses (see test/script/basic/access-specializer.js) ... Several of these things just stopped being problems with the new architecture "can't happen anymore" and are not bug fixes per se. All tests run. No performance regressions exist that I've been able to measure. Some increases in performance were measured, but in the statistical margin of error (which is very wide as HotSpot currently has warmup issues with LambdaForms/invoke dynamic). Compile speed has not measurably increased.

Reviewed-by: jlaskey, attila
2013-01-30 12:26:45 +01:00
Athijegannathan Sundararajan
ff9829969f 8005940: provide ant targets to get and update external test scripts
Reviewed-by: jlaskey, lagergren
2013-01-09 22:32:40 +05:30
James Laskey
311f43d5a6 8005663: Update copyright year to 2013
Reviewed-by: sundar
2013-01-04 09:58:33 -04:00
Jim Laskey
98762d6ee0 8005403: Open-source Nashorn
Co-authored-by: Akhil Arora <akhil.arora@oracle.com>
Co-authored-by: Andreas Woess <andreas.woess@jku.at>
Co-authored-by: Attila Szegedi <attila.szegedi@oracle.com>
Co-authored-by: Hannes Wallnoefer <hannes.wallnoefer@oracle.com>
Co-authored-by: Henry Jen <henry.jen@oracle.com>
Co-authored-by: Marcus Lagergren <marcus.lagergren@oracle.com>
Co-authored-by: Pavel Semenov <pavel.semenov@oracle.com>
Co-authored-by: Pavel Stepanov <pavel.stepanov@oracle.com>
Co-authored-by: Petr Hejl <petr.hejl@oracle.com>
Co-authored-by: Petr Pisl <petr.pisl@oracle.com>
Co-authored-by: Sundararajan Athijegannathan <sundararajan.athijegannathan@oracle.com>
Reviewed-by: attila, hannesw, lagergren, sundar
2012-12-21 16:36:24 -04:00