Re: IA64 control speculation of loads

2021-02-09 Thread Benoît De Dinechin
Sorry my previous answer was cut. The motivation for prepass global code motion is indeed that after register allocation, inter-block scheduling is even more restricted due to anti-dependencies, including those due to live-out on side exit branches. Global code motion is a key performance enabl

Re: IA64 control speculation of loads

2021-02-08 Thread Benoît De Dinechin
_CONTROL; if (!sel_sched_p () && mflag_sched_in_control_spec) mask |= BE_IN_CONTROL; } On the kvx, I tried the following kvx_sched_set_sched_flags(): - Original Message - From: "Alexander Monakov" To: "Benoît De Dinechin" Cc: "gcc"

IA64 control speculation of loads

2021-02-08 Thread Benoît De Dinechin
Hello, Is there a way to activate control speculation of loads in GCC, starting with the ia64 target? For a loop as simple as on GCC 7.5, I could not get any: double list_sum(list_cell list) { double result = 0.0; while (list->next) { list = list->next; result += list->payload; if (!lis