Open Bug 1200407 Opened 9 years ago Updated 2 years ago

Use EffectiveAddress instead of AddI to reduce register pressure

Categories

(Core :: JavaScript Engine: JIT, defect, P5)

defect

Tracking

()

Tracking Status
firefox43 --- affected

People

(Reporter: bhackett1024, Unassigned)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

Attached patch patchSplinter Review
When there is an add instruction where both inputs are live afterwards, or one input is live and the other is a constant, on x86/x64 the register allocator ends up needing to copy an input at some point because the add will clobber its output register.  This hits at a couple of hot sites in a zlib inflation benchmark.

The attached patch lowers these instructions using LEffectiveAddress instead of LAddI.  This reduces the total number of Ion instructions executed by 1% and the amount of spill code executed by 4%.  Unfortunately it seems to slow down the actual run time of the benchmark by 1-2%, so it seems better to shelf this for now until there's a better understanding of what's going on.
Blocks: sm-js-perf
Priority: -- → P5
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: