Displaying 4 results from an estimated 4 matches for "assumption_doesnt_hold".
2012 Oct 02
2
[LLVMdev] How best to represent assume statements in LLVM IR?
...anyone have any suggestions on how to best represent an assumption
>> statement(*) in IR?
>
> good question! There have been various attempts, for example Nick tried
> teaching the optimizers to not prune the branch to unreachable in
>
> br %cond, label %assumption_holds, %assumption_doesnt_hold
> assumption_doesnt_hold:
> unreachable
>
> This then leads to %cond being replaced with true everywhere downstream,
> which
> is good. Unfortunately it also causes a bunch of other optimizations to
> not
> occur, and the overall result was not a win.
>
> Rafael ad...
2012 Oct 02
0
[LLVMdev] How best to represent assume statements in LLVM IR?
Hi Philip,
> Does anyone have any suggestions on how to best represent an assumption
> statement(*) in IR?
good question! There have been various attempts, for example Nick tried
teaching the optimizers to not prune the branch to unreachable in
br %cond, label %assumption_holds, %assumption_doesnt_hold
assumption_doesnt_hold:
unreachable
This then leads to %cond being replaced with true everywhere downstream, which
is good. Unfortunately it also causes a bunch of other optimizations to not
occur, and the overall result was not a win.
Rafael added "range" metadata to the IR, howeve...
2012 Oct 02
0
[LLVMdev] How best to represent assume statements in LLVM IR?
...est represent an
> >> assumption statement(*) in IR?
> >
> > good question! There have been various attempts, for example Nick
> > tried teaching the optimizers to not prune the branch to
> > unreachable in
> >
> > br %cond, label %assumption_holds, %assumption_doesnt_hold
> > assumption_doesnt_hold:
> > unreachable
> >
> > This then leads to %cond being replaced with true everywhere
> > downstream, which
> > is good. Unfortunately it also causes a bunch of other
> > optimizations to not
> > occur, and the overall r...
2012 Oct 01
3
[LLVMdev] How best to represent assume statements in LLVM IR?
Does anyone have any suggestions on how to best represent an assumption
statement(*) in IR? In particular, I want to expose the information
implied by the assumption to the optimization passes without emitting
code (after optimization) to check the assumption itself. I've tried a
couple of options so far, and none have gotten me quite the right
semantics. Has anyone else implemented