search for: widenable_condit

Displaying 2 results from an estimated 2 matches for "widenable_condit".

2018 Jul 13
2
Giving up using implicit control flow in guards
...r load/store in the function, but doesn't allow CSE to eliminate it. It is not actually super-cool, because there is no way that we can safely hoist it out of loop (and sometimes we want to, for example to make unswitching). So this part is a one I am still thinking about. As an alternative to widenable_condition() call, we are considering loads from special dedicated global fields. The bad thing about them is that if a loop gets peeled, then a widenable condition in the loop can be optimized away basing on fact that this field was true on the 1st iteration. Thanks, Max -----Original Message----- From:...
2018 Jul 10
2
Giving up using implicit control flow in guards
...is even worse). So basically, the only thing we need to distinguish the guard is a special type of undef value which will not be optimized away by other transforms (at least not before we are done with widening-based transforms). To solve that, we can introduce a special intrinsic that is called widenable_condition(). And we can just use it instead of the undef here like this: %wc = call i1 widenable_condition() %guard_cond = and i1 %cond, %wc br i1 %guard_cond, label %guarded, label %deopt guarded: <do some useful stuff> deopt: <deoptimize and leave the compil...