[PATCH] Improving LowerSwitch behavior for contiguous ranges
resistor at mac.com
Tue Jun 10 12:25:41 PDT 2014
On Jun 10, 2014, at 11:52 AM, Eric Christopher <echristo at gmail.com> wrote:
> On Tue, Jun 10, 2014 at 11:48 AM, Owen Anderson <resistor at mac.com> wrote:
>> On Jun 10, 2014, at 11:37 AM, Hal Finkel <hfinkel at anl.gov> wrote:
>> Yep. Though I have to admit that it'd be nice if we had a range
>> propagation pass that would clean this up rather than special casing.
>> Doesn't LVI do range propagation?
>> Sort of.
>> That said, range propagation isn’t a good solution to this problem.
>> SwitchLowering generally happens towards the end of a compilation pipeline,
>> and you don’t want to run any significant set of CFG optimizations after it
>> because they might re-introduce switches.
> Fair enough. I figured range propagation would just prove dead blocks
> without doing significant CFG optimizations.
It probably doesn’t do any today, but we don’t have a good way to enforce the invariant that it won’t in the future. More generally, LowerSwitch is firmly a lowering operation, and it’s not unreasonable to assume we won’t be running a lot of optimizations after it. It should try to produce good output without the need for further cleanup.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-commits