- 29 Jun, 2015 1 commit
-
-
mtrofin authored
Separated core greedy allocator concepts, exposing the APIs we would want to continue working with. In particular, this change completely reworks CoalescedLiveRanges to reflect the fact that we expect more than one possible conflict, scrapping the initial design of the structure. Since this is a critical part of the design, this change may be thought of as a full rewrite of the algorithm. Reduced all heuristics to just 2 essential ones: split "somewhere", which we'll still need when all other heuristics fail; and spill. Introduced a simple primitive for splitting - at GapPosition::START. The goal is to use such primitives to quickly and reliably author heuristics. I expected this primitive to "just work" for any arbitrary instruction index within a live range - e.g. its middle. That's not the case, it seems to upset execution in certain scenarios. Restricting to either before/after use positions seems to work. I'm still investigating what the source of failures is in the case of "arbitrary instruction in the range" case. I intended to document the rationale and prove the soundness of always using START for splits, but I will postpone to after this last remaining issue is resolved. Review URL: https://codereview.chromium.org/1205173002 Cr-Commit-Position: refs/heads/master@{#29352}
-
- 26 Jun, 2015 2 commits
-
-
dslomov authored
R=wingo@igalia.com BUG=v8:811 LOG=N Review URL: https://codereview.chromium.org/1212473002 Cr-Commit-Position: refs/heads/master@{#29337}
-
machenbach authored
BUG= Review URL: https://codereview.chromium.org/1217483002 Cr-Commit-Position: refs/heads/master@{#29328}
-
- 25 Jun, 2015 1 commit
-
-
bmeurer authored
This partially reverts https://codereview.chromium.org/1162563002 because we might actually be able to optimize certain combinations now due to dead code elimination. R=titzer@chromium.org Review URL: https://codereview.chromium.org/1202263006 Cr-Commit-Position: refs/heads/master@{#29277}
-
- 19 Jun, 2015 1 commit
-
-
bmeurer authored
The three different concerns that the ControlReducer used to deal with are now properly separated into a.) DeadCodeElimination, which is a regular AdvancedReducer, that propagates Dead via control edges, b.) CommonOperatorReducer, which does strength reduction on common operators (i.e. Branch, Phi, and friends), and c.) GraphTrimming, which removes dead->live edges from the graph. This will make it possible to run the DeadCodeElimination together with other passes that actually introduce Dead nodes, i.e. typed lowering; and it opens the door for general inlining without two stage fix point iteration. To make the DeadCodeElimination easier and more uniform, we basically reverted the introduction of DeadValue and DeadEffect, and changed the Dead operator to produce control, value and effect. Note however that this is not a requirement, but merely a way to make dead propagation easier and more uniform. We could always go back and decide to have different Dead operators if some other change requires that. Note that there are several additional opportunities for cleanup now, i.e. OSR deconstruction could be a regular reducer now, and we don't need to use TheHole as dead value marker in the GraphReducer. And we can actually run the dead code elimination together with the other passes instead of using separate passes over the graph. We will do this in follow up CLs. R=jarin@chromium.org, mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1193833002 Cr-Commit-Position: refs/heads/master@{#29146}
-
- 17 Jun, 2015 1 commit
-
-
bmeurer authored
Up until now that was still mixed with control reduction in the ControlReducer. This separation allows us to remove the horrible Reducer::Finish hack and also do graph trimming at more appropriate places in the pipeline (i.e. trim dead nodes after generic lowering, which can also make nodes dead). R=jarin@chromium.org,mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1188433010 Cr-Commit-Position: refs/heads/master@{#29077}
-
- 16 Jun, 2015 2 commits
-
-
mtrofin authored
Opportunistically removed GreedyAllocator::TryReuseSpillForPhi because it is actually unsuitable for Greedy. It was copied from Linear and it relies on hints, however, the current implementation of hints assumes linear scan. This change doesn't aim to address performance nor correctness for Greedy. BUG= Review URL: https://codereview.chromium.org/1184183002 Cr-Commit-Position: refs/heads/master@{#29054}
-
chunyang.dai authored
This patch includes the following changes. 1, Enable the turbofan backend support for X87 platform. It depends on previous CL: 3fdfebd2. 2, Enable the test cases which are disabled because turbofan for X87 was not enabled. BUG=v8:4135 LOG=N Review URL: https://codereview.chromium.org/1179763004 Cr-Commit-Position: refs/heads/master@{#29049}
-
- 12 Jun, 2015 1 commit
-
-
bmeurer authored
R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1177353003 Cr-Commit-Position: refs/heads/master@{#28993}
-
- 09 Jun, 2015 1 commit
-
-
dslomov authored
Pushed the detection logic down to ParseAndClassifyIdentifier in preparation to having patterns in parameter positions. R=arv@chromium.org,rossberg@chromium.org,wingo@igalia.com BUG=v8:811 LOG=N Review URL: https://codereview.chromium.org/1170153003 Cr-Commit-Position: refs/heads/master@{#28876}
-
- 03 Jun, 2015 2 commits
-
-
binji authored
This is behind the flag "--harmony-atomics", and it only works on SharedArrayBuffers. This implementation only includes the runtime functions. The TurboFan implementation will be next. The draft spec for Atomics can be found here: https://docs.google.com/document/d/1NDGA_gZJ7M7w1Bh8S0AoDyEqwDdRh4uSoTPSNn77PFk BUG= LOG=n Review URL: https://codereview.chromium.org/1162503002 Cr-Commit-Position: refs/heads/master@{#28796}
-
jochen authored
Also turn on the macro to disable to-be-deprecated APIs for core BUG=v8:4134 R=vogelheim@chromium.org LOG=n Review URL: https://codereview.chromium.org/1162363005 Cr-Commit-Position: refs/heads/master@{#28783}
-
- 01 Jun, 2015 1 commit
-
-
bmeurer authored
In a nutshell: The FILTER_KEY builtin is gone, and was replaced by a simple runtime call to ForInFilter, which does everything and is even cheaper (because FILTER_KEY used to call into the runtime anyway). And ForInFilter returns either the name or undefined, which makes it possible to remove the control flow construction from the AstGraphBuilder, and thereby make both the initialization and the per-loop code of for-in optimizable later (in typed lowering). R=jarin@chromium.org Review URL: https://codereview.chromium.org/1160983004 Cr-Commit-Position: refs/heads/master@{#28711}
-
- 29 May, 2015 1 commit
-
-
jarin authored
BUG= Review URL: https://codereview.chromium.org/1148293009 Cr-Commit-Position: refs/heads/master@{#28697}
-
- 28 May, 2015 1 commit
-
-
bmeurer authored
The SimplifiedOperatorReducer is (mostly) unused, except for the very rough store elimination, and just eats compilation time. R=jarin@chromium.org Review URL: https://codereview.chromium.org/1162563002 Cr-Commit-Position: refs/heads/master@{#28673}
-
- 22 May, 2015 3 commits
-
-
binji authored
This adds a new external type (v8::SharedArrayBuffer) that uses a JSArrayBuffer under the hood. It can be distinguished from an ArrayBuffer by the newly-added is_shared() bit. Currently there is no difference in functionality between a SharedArrayBuffer and an ArrayBuffer. However, a future CL will add the Atomics API, which is only available on an SharedArrayBuffer. All non-atomic accesses are identical to ArrayBuffer accesses. LOG=N BUG= Review URL: https://codereview.chromium.org/1136553006 Cr-Commit-Position: refs/heads/master@{#28594}
-
yangguo authored
Revert of Implement SharedArrayBuffer (patchset #7 id:120001 of https://codereview.chromium.org/1136553006/) Reason for revert: breaks build Original issue's description: > Implement SharedArrayBuffer. > > This adds a new external type (v8::SharedArrayBuffer) that uses a JSArrayBuffer under the hood. It can be distinguished from an ArrayBuffer by the newly-added is_shared() bit. > > Currently there is no difference in functionality between a SharedArrayBuffer and an ArrayBuffer. However, a future CL will add the Atomics API, which is only available on an SharedArrayBuffer. All non-atomic accesses are identical to ArrayBuffer accesses. > > BUG= > > Committed: https://crrev.com/57170bff7baf341c666252a7f6a49e9c08d51263 > Cr-Commit-Position: refs/heads/master@{#28588} TBR=jarin@chromium.org,jochen@chromium.org,binji@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1149203003 Cr-Commit-Position: refs/heads/master@{#28589}
-
binji authored
This adds a new external type (v8::SharedArrayBuffer) that uses a JSArrayBuffer under the hood. It can be distinguished from an ArrayBuffer by the newly-added is_shared() bit. Currently there is no difference in functionality between a SharedArrayBuffer and an ArrayBuffer. However, a future CL will add the Atomics API, which is only available on an SharedArrayBuffer. All non-atomic accesses are identical to ArrayBuffer accesses. BUG= Review URL: https://codereview.chromium.org/1136553006 Cr-Commit-Position: refs/heads/master@{#28588}
-
- 21 May, 2015 1 commit
-
-
yangguo authored
Also changed string.js and math.js to adapt this change. R=jkummerow@chromium.org Committed: https://crrev.com/e25058b0b7b9831162579564fc8935d568c1ecdd Cr-Commit-Position: refs/heads/master@{#28521} Review URL: https://codereview.chromium.org/1143993003 Cr-Commit-Position: refs/heads/master@{#28533}
-
- 20 May, 2015 2 commits
-
-
jkummerow authored
Revert of Use shared container to manage imports/exports. (patchset #2 id:20001 of https://codereview.chromium.org/1143993003/) Reason for revert: Breaks nosnap bots Original issue's description: > Use shared container to manage imports/exports. > > Also changed string.js and math.js to adapt this change. > > R=jkummerow@chromium.org > > Committed: https://crrev.com/e25058b0b7b9831162579564fc8935d568c1ecdd > Cr-Commit-Position: refs/heads/master@{#28521} TBR=yangguo@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1144163002 Cr-Commit-Position: refs/heads/master@{#28523}
-
yangguo authored
Also changed string.js and math.js to adapt this change. R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/1143993003 Cr-Commit-Position: refs/heads/master@{#28521}
-
- 15 May, 2015 2 commits
-
-
arv authored
All the builtin iterators as well as the generator objects have an object called %IteratorPrototype% in the spec between them and %ObjectPrototype%. BUG=v8:3568 LOG=N Review URL: https://codereview.chromium.org/1128233008 Cr-Commit-Position: refs/heads/master@{#28426}
-
dslomov authored
BUG=v8:811 LOG=N Review URL: https://codereview.chromium.org/1128043006 Cr-Commit-Position: refs/heads/master@{#28417}
-
- 11 May, 2015 2 commits
-
-
dslomov authored
This patch: - Refactors Parser::ParseVariableDeclarations - Introduces Parser::PatternMatcher class - Implements matching a single variable pattern - Implements rudimentary matching against object literal pattern as a proof of concept R=arv@chromium.org,rossberg@chromium.org BUG=v8:811 LOG=N Review URL: https://codereview.chromium.org/1130623004 Cr-Commit-Position: refs/heads/master@{#28345}
-
titzer authored
R=jarin@chromium.org BUG= Review URL: https://codereview.chromium.org/1131853002 Cr-Commit-Position: refs/heads/master@{#28330}
-
- 08 May, 2015 1 commit
-
-
domenic authored
Instead of making them an extra option that gets passed in and compiled at the end of the natives file for a given run of js2c, we now make them a separate run of js2c with a separate natives file output. This natives file output is then compiled in the bootstrapper. It is not part of the snapshot (yet), but instead is treated similar to the experimental natives, just without any of the complexity that comes from tieing the behavior to flags. We also don't need counterparts to InitializeExperimentalGlobal and InstallExperimentalNativeFunctions (yet?). This fixes the issue with https://codereview.chromium.org/1129743003 by making the dummy file that is generated for snapshots with no extras (or no experimental features) nonempty. R=yangguo@chromium.org, jochen@chromium.org BUG= Review URL: https://codereview.chromium.org/1130993003 Cr-Commit-Position: refs/heads/master@{#28311}
-
- 07 May, 2015 2 commits
-
-
domenic authored
Revert of Make V8 extras a separate type of native (patchset #4 id:60001 of https://codereview.chromium.org/1129743003/) Reason for revert: https://build.chromium.org/p/client.v8/builders/V8-Blink%20Linux%2064%20%28dbg%29/builds/2745 Original issue's description: > Make V8 extras a separate type of native > > Instead of making them an extra option that gets passed in and compiled > at the end of the natives file for a given run of js2c, we now make them a > separate run of js2c with a separate natives file output. > > This natives file output is then compiled in the bootstrapper. It is not part > of the snapshot (yet), but instead is treated similar to the experimental > natives, just without any of the complexity that comes from tieing the > behavior to flags. We also don't add counterparts to > InitializeExperimentalGlobal and InstallExperimentalNativeFunctions, yet. > > R=yangguo@chromium.org, jochen@chromium.org > BUG= > > Committed: https://crrev.com/c93aff4ac63ad9ffb6318e750335208de32b7902 > Cr-Commit-Position: refs/heads/master@{#28296} TBR=jochen@chromium.org,yangguo@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1131903002 Cr-Commit-Position: refs/heads/master@{#28299}
-
domenic authored
Instead of making them an extra option that gets passed in and compiled at the end of the natives file for a given run of js2c, we now make them a separate run of js2c with a separate natives file output. This natives file output is then compiled in the bootstrapper. It is not part of the snapshot (yet), but instead is treated similar to the experimental natives, just without any of the complexity that comes from tieing the behavior to flags. We also don't add counterparts to InitializeExperimentalGlobal and InstallExperimentalNativeFunctions, yet. R=yangguo@chromium.org, jochen@chromium.org BUG= Review URL: https://codereview.chromium.org/1129743003 Cr-Commit-Position: refs/heads/master@{#28296}
-
- 06 May, 2015 3 commits
-
-
scottmg authored
R=jochen@chromium.org BUG=chromium:485155 LOG=y Review URL: https://codereview.chromium.org/1124293002 Cr-Commit-Position: refs/heads/master@{#28276}
-
caitpotter88 authored
BUG=v8:4007 LOG=N R=arv@chromium.org, rossberg@chromium.org Review URL: https://codereview.chromium.org/548833002 Cr-Commit-Position: refs/heads/master@{#28270}
-
titzer authored
R=hpayer@chromium.org, erikcorry@chromium.org BUG= Review URL: https://codereview.chromium.org/1105693002 Cr-Commit-Position: refs/heads/master@{#28257}
-
- 05 May, 2015 1 commit
-
-
bmeurer authored
Tail calls are matched on the graph, with a dedicated tail call optimization that is actually testable. The instruction selection can still fall back to a regular if the platform constraints don't allow to emit a tail call (i.e. the return locations of caller and callee differ or the callee takes non-register parameters, which is a restriction that will be removed in the future). Also explicitly limit tail call optimization to stubs for now and drop the global flag. BUG=v8:4076 LOG=n Review URL: https://codereview.chromium.org/1114163005 Cr-Commit-Position: refs/heads/master@{#28219}
-
- 04 May, 2015 1 commit
-
-
titzer authored
R=bmeurer@chromium.org BUG= Review URL: https://codereview.chromium.org/1118823003 Cr-Commit-Position: refs/heads/master@{#28191}
-
- 29 Apr, 2015 1 commit
-
-
svenpanne authored
Review URL: https://codereview.chromium.org/1053123006 Cr-Commit-Position: refs/heads/master@{#28120}
-
- 28 Apr, 2015 1 commit
-
-
domenic authored
BUG= R=jochen@chromium.org, yangguo@chromium.org Review URL: https://codereview.chromium.org/1113593002 Cr-Commit-Position: refs/heads/master@{#28110}
-
- 21 Apr, 2015 1 commit
-
-
svenpanne authored
Baby steps towards saner #includes... Review URL: https://codereview.chromium.org/1051393003 Cr-Commit-Position: refs/heads/master@{#27958}
-
- 20 Apr, 2015 2 commits
-
-
svenpanne authored
Review URL: https://codereview.chromium.org/1098863003 Cr-Commit-Position: refs/heads/master@{#27947}
-
titzer authored
R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/1099473004 Cr-Commit-Position: refs/heads/master@{#27945}
-
- 17 Apr, 2015 1 commit
-
-
machenbach authored
Revert of Refactor compilation dependency handling. (patchset #4 id:60001 of https://codereview.chromium.org/1095433002/) Reason for revert: [Sheriff] Causes crashes in laout tests: http://build.chromium.org/p/client.v8/builders/V8-Blink%20Linux%2064%20%28dbg%29/builds/2543 Extra bisect run: http://build.chromium.org/p/client.v8/builders/V8-Blink%20Linux%2064%20%28dbg%29/builds/2548 Original issue's description: > Refactor compilation dependency handling. > > Extract a new data structure CompilationDependencies and move (most) logic there. > > R=mstarzinger@chromium.org,verwaest@chromium.org > BUG= > > Committed: https://crrev.com/b882479f1c84a48961b8aec81fa1bb1225034784 > Cr-Commit-Position: refs/heads/master@{#27892} TBR=mstarzinger@chromium.org,verwaest@chromium.org,titzer@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1093783002 Cr-Commit-Position: refs/heads/master@{#27904}
-
- 16 Apr, 2015 1 commit
-
-
titzer authored
Extract a new data structure CompilationDependencies and move (most) logic there. R=mstarzinger@chromium.org,verwaest@chromium.org BUG= Review URL: https://codereview.chromium.org/1095433002 Cr-Commit-Position: refs/heads/master@{#27892}
-