Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(123)

Issue 100483006: [arm] Drop useless branches in full and lithium codegen. (Closed)

Created:
7 years ago by Benedikt Meurer
Modified:
6 years, 11 months ago
CC:
v8-dev
Visibility:
Public.

Description

[arm] Drop useless branches in full and lithium codegen. R=svenpanne@chromium.org Committed: https://code.google.com/p/v8/source/detail?r=18429

Patch Set 1 #

Total comments: 9

Patch Set 2 : Don't use condition vadd/vsqrt. #

Patch Set 3 : Revert lithium ArgumentsLength changes. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+9 lines, -28 lines) Patch
M src/arm/full-codegen-arm.cc View 1 5 chunks +5 lines, -14 lines 0 comments Download
M src/arm/lithium-codegen-arm.cc View 1 2 4 chunks +4 lines, -14 lines 0 comments Download

Messages

Total messages: 5 (0 generated)
Benedikt Meurer
Hey Sven, Here's another cleanup of useless branches in ARM full and lithium codegen. PTAL ...
7 years ago (2013-12-12 13:07:52 UTC) #1
Sven Panne
LGTM in principle, but I would like to see Rodolph's comments regarding the performance impact, ...
7 years ago (2013-12-12 13:43:23 UTC) #2
Rodolph Perfetta
My rule of thumb would be similar to Sven's one: conditional non-execution of 2-3 "simple" ...
7 years ago (2013-12-13 11:31:14 UTC) #3
Benedikt Meurer
Committed patchset #3 manually as r18429 (presubmit successful).
6 years, 11 months ago (2014-01-02 06:49:16 UTC) #4
Benedikt Meurer
6 years, 11 months ago (2014-01-02 06:49:28 UTC) #5
Message was sent while issue was closed.
https://codereview.chromium.org/100483006/diff/1/src/arm/lithium-codegen-arm.cc
File src/arm/lithium-codegen-arm.cc (right):

https://codereview.chromium.org/100483006/diff/1/src/arm/lithium-codegen-arm....
src/arm/lithium-codegen-arm.cc:3445: __ ldr(result, MemOperand(fp,
StandardFrameConstants::kCallerFPOffset), ne);
Reverted this one.

https://codereview.chromium.org/100483006/diff/1/src/arm/lithium-codegen-arm....
src/arm/lithium-codegen-arm.cc:3875: __ vadd(result, input, kDoubleRegZero, ne);
On 2013/12/13 11:31:14, Rodolph Perfetta wrote:
> On 2013/12/12 13:43:23, Sven Panne wrote:
> > ... and here.
> 
> vadd and especially vsqrt are complex instructions. Complex instructions don't
> interact too well with conditions and the CPU could perform the entire
operation
> before discarding the result if the condition is false. So here we'll be
slower
> on most modern CPU. If we were in full-codegen that would be acceptable
though.

Done.

Powered by Google App Engine
This is Rietveld 408576698