|
@@ -66,7 +66,11 @@ unit optcse;
|
|
begin
|
|
begin
|
|
if (n.nodetype in cseinvariant) or
|
|
if (n.nodetype in cseinvariant) or
|
|
((n.nodetype=inlinen) and
|
|
((n.nodetype=inlinen) and
|
|
- (tinlinenode(n).inlinenumber in [in_assigned_x])
|
|
|
|
|
|
+ (tinlinenode(n).inlinenumber in [in_assigned_x,in_sqr_real,in_sqrt_real,in_sin_real,in_cos_real,in_abs_long,
|
|
|
|
+ in_abs_real,in_exp_real,in_ln_real,in_pi_real,in_popcnt_x,in_arctan_real,in_round_real,in_trunc_real,
|
|
|
|
+ { cse on fma will still not work because it would require proper handling of call nodes
|
|
|
|
+ with more than one parameter }
|
|
|
|
+ in_fma_single,in_fma_double,in_fma_extended,in_fma_float128])
|
|
) or
|
|
) or
|
|
((n.nodetype=callparan) and not(assigned(tcallparanode(n).right))) or
|
|
((n.nodetype=callparan) and not(assigned(tcallparanode(n).right))) or
|
|
((n.nodetype=loadn) and
|
|
((n.nodetype=loadn) and
|