Details
-
Type:
Improvement
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: None
-
Fix Version/s: 1000
-
Component/s: Compiler: Optimizing
-
Labels:None
-
Number of attachments :
Description
In r15045 I modified the implementation of tableswitch in the baseline and opt compiler for Intel. This resulted in a satisfying speed up to many benchmarks, in particular a near 15% speed up of luindex [1]. Currently switches of >= 8 values are converted into lookupswitches (ie explicit compare and branches for each case). On Intel having 2 branches within 16bytes is problematic for the branch predictor. We should reevaluate the choice of the constant 8 for lookupswitches in the light of having a better tableswitch implementation and that we might be polluting the branch predictor with too many branches within a small period.