-
Enhancement
-
Resolution: Won't Fix
-
P3
-
None
-
7, 9, 10
-
generic
-
generic
Recent work on intrinsics and type checking has uncovered missing
ideal and machine-specific optimizations. None are by themselves
major, but as a group they contribute to extra instructions in hot
code. Fixing them will also make our system more uniform and easy to
maintain, since some fixes reconcile some near-duplications between
similar blocks of code.
Partial list:
- simple memory independence checks are missing
- cast nodes sometimes obscure value equivalence
- parser sometimes misses cmp node transformations
- I2L conversions sometimes obscure range information
- there are too many different kinds of cast nodes
- missing bit-test simplifications: x&~0=x, etc.
- missing algebraic simplifications: x^x=0, x|x=x, etc.
- div/mod 32/64 optimizations have conflicting designs
- when classifying unsafe addresses, assume nulls are uncommon
- internal range checks should value-number with user-written checks
- SPARC set64 instruction is sub-optimal
ideal and machine-specific optimizations. None are by themselves
major, but as a group they contribute to extra instructions in hot
code. Fixing them will also make our system more uniform and easy to
maintain, since some fixes reconcile some near-duplications between
similar blocks of code.
Partial list:
- simple memory independence checks are missing
- cast nodes sometimes obscure value equivalence
- parser sometimes misses cmp node transformations
- I2L conversions sometimes obscure range information
- there are too many different kinds of cast nodes
- missing bit-test simplifications: x&~0=x, etc.
- missing algebraic simplifications: x^x=0, x|x=x, etc.
- div/mod 32/64 optimizations have conflicting designs
- when classifying unsafe addresses, assume nulls are uncommon
- internal range checks should value-number with user-written checks
- SPARC set64 instruction is sub-optimal