author | Jan de Mooij <jdemooij@mozilla.com> |
Mon, 30 Sep 2013 10:52:38 +0200 | |
changeset 149244 | 51e40d4877da62f3e961f8eeb10850be2016611c |
parent 149243 | 71629b83b4015d355d11e5c83b154d2cfec53689 |
child 149245 | f60769ee4b04bf570dbbc3979f5a65372f2b574c |
push id | 25380 |
push user | ryanvm@gmail.com |
push date | Mon, 30 Sep 2013 20:16:36 +0000 |
treeherder | mozilla-central@1332fc1c15e1 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | bhackett |
bugs | 921725 |
milestone | 27.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
js/src/jsinfer.cpp | file | annotate | diff | comparison | revisions | |
js/src/jsinfer.h | file | annotate | diff | comparison | revisions | |
js/src/jsinferinlines.h | file | annotate | diff | comparison | revisions | |
js/src/jsscript.h | file | annotate | diff | comparison | revisions |
--- a/js/src/jsinfer.cpp +++ b/js/src/jsinfer.cpp @@ -3991,17 +3991,16 @@ TypeZone::sweep(FreeOp *fop, bool releas comp->types.sweep(fop); } { gcstats::AutoPhase ap2(rt->gcStats, gcstats::PHASE_CLEAR_SCRIPT_ANALYSIS); for (CellIterUnderGC i(zone(), FINALIZE_SCRIPT); !i.done(); i.next()) { JSScript *script = i.get<JSScript>(); script->clearAnalysis(); - script->clearPropertyReadTypes(); } } { gcstats::AutoPhase ap2(rt->gcStats, gcstats::PHASE_FREE_TI_ARENA); rt->freeLifoAlloc.transferFrom(&oldAlloc); } }
--- a/js/src/jsinfer.h +++ b/js/src/jsinfer.h @@ -107,17 +107,16 @@ namespace jit { } namespace analyze { class ScriptAnalysis; } namespace types { -class TypeCallsite; class TypeCompartment; class TypeSet; /* Type set entry for either a JSObject with singleton type or a non-singleton TypeObject. */ struct TypeObjectKey { static intptr_t keyBits(TypeObjectKey *obj) { return (intptr_t) obj; } static TypeObjectKey *getKey(TypeObjectKey *obj) { return obj; } }; @@ -1136,23 +1135,16 @@ class TypeScript /* * List mapping indexes of bytecode type sets to the offset of the opcode * they correspond to. Cleared on each GC. */ uint32_t *bytecodeMap; public: - /* - * Array of type sets storing the possible inputs to property reads. - * Generated the first time the script is analyzed by inference and kept - * after analysis purges. - */ - HeapTypeSet *propertyReadTypes; - /* Array of type type sets for variables and JOF_TYPESET ops. */ TypeSet *typeArray() const { return (TypeSet *) (uintptr_t(this) + sizeof(TypeScript)); } static inline unsigned NumTypeSets(JSScript *script); static inline StackTypeSet *ThisTypes(JSScript *script); static inline StackTypeSet *ArgTypes(JSScript *script, unsigned i);
--- a/js/src/jsinferinlines.h +++ b/js/src/jsinferinlines.h @@ -1554,23 +1554,16 @@ inline void JSScript::clearAnalysis() { if (types) { types->analysis = NULL; types->bytecodeMap = NULL; } } -inline void -JSScript::clearPropertyReadTypes() -{ - if (types && types->propertyReadTypes) - types->propertyReadTypes = NULL; -} - namespace js { template <> struct GCMethods<const types::Type> { static types::Type initial() { return types::Type::UnknownType(); } static ThingRootKind kind() { return THING_ROOT_TYPE; } static bool poisoned(const types::Type &v) {
--- a/js/src/jsscript.h +++ b/js/src/jsscript.h @@ -837,18 +837,16 @@ class JSScript : public js::gc::Barriere /* Ensure the script has type inference analysis information. */ inline bool ensureRanInference(JSContext *cx); inline bool hasAnalysis(); inline void clearAnalysis(); inline js::analyze::ScriptAnalysis *analysis(); - inline void clearPropertyReadTypes(); - inline js::GlobalObject &global() const; js::GlobalObject &uninlinedGlobal() const; /* See StaticScopeIter comment. */ JSObject *enclosingStaticScope() const { if (isCallsiteClone) return NULL; return enclosingScopeOrOriginalFunction_;