Displaying 3 results from an estimated 3 matches for "is_dereferenceable".
2015 Apr 24
2
[LLVMdev] RFC: implicit null checks in llvm
...X always happens, X must be
dereferenceable
T = *X // miscompile here
EH_LABEL // clobbers all
U = *X // implicit null check, branches out on fault
EH_LABEL // clobbers all
...
The fundamental problem, of course, is that we're hiding the real
control flow which is
if (!is_dereferenceable(X)) branch_out;
U = *X
> We don’t need to support patching at the load. Patch points will be needed
> to “heal” bad implicit null checks, but that is probably better done by
> patching call sites into the optimized code. Eventually, someone may want to
> be able to patch their implic...
2015 Apr 24
2
[LLVMdev] RFC: implicit null checks in llvm
On Thu, Apr 23, 2015 at 5:17 PM, Andrew Trick <atrick at apple.com> wrote:
> The scheduler itself doesn’t move anything around labels. But any pass can
> perform code motion or load/store optimization. Also, any pass can insert
> an instruction, like a copy, between the label and the load.
>
> I’m not really sure how EH_LABEL ends up translating into exception
> tables,
2015 Aug 01
3
[LLVMdev] [cfe-dev] Clang devirtualization proposal
On Fri, Jul 31, 2015 at 6:18 PM, Reid Kleckner <rnk at google.com> wrote:
> Consider this pseudo-IR and some possible transforms that I would expect to
> be semantics preserving:
>
> void f(i32* readonly %a, i32* %b) {
> llvm.assume(%a == %b)
> store i32 42, i32* %b
> }
> ...
> %p = alloca i32
> store i32 13, i32* %p
> call f(i32* readonly %p,