Displaying 3 results from an estimated 3 matches for "example_tweaked".
2015 Jan 15
2
[LLVMdev] generate llvm.assume calls in GVN?
...could make would be to add an llvm.assume inside
> the if case of the if condition. (Yes, that is as silly as it sounds.) I
> tested that, and it did optimize as expected. It's essentially working
> around a deficiency in the optimizer around path constraints.
>
> define void @example_tweaked(i64* %x0) #0 {
> %1 = load i64* %x0, align 8
> %2 = and i64 %1, 3
> %3 = icmp eq i64 %2, 2
> br i1 %3, label %4, label %8
> ; <label>:4 ; preds = %0
> call void @llvm.assume(i1 %3)
> %5 = and i64 %1, -4 ; th...
2014 Dec 04
2
[LLVMdev] Optimising bit-flipping code
Hi,
I'm compiling a large code base that uses tagged data, with the tag in the
two lowest bits.
I.e. ints are shifted two steps to the left and have 2 in the tag bits,
pointers have 0 in the tag bits, etc.
When I compile the code, I notice that there are places where -O3 doesn't
remove
unnecessary tag bit tests and manipulations, when they are performed with
bitwise
manipulation (which
2015 Jan 15
2
[LLVMdev] generate llvm.assume calls in GVN?
...of simplify-demanded-bits, so that we could remove the cost of
running simplify-demanded-bits to help pay for the VRP. I've been thinking
about the data structure we could use for that, but haven't worked out all
the operations yet.
Nick
In particular:
>
>
>>> define void @example_tweaked(i64* %x0) #0 {
>>> %1 = load i64* %x0, align 8
>>> %2 = and i64 %1, 3
>>> %3 = icmp eq i64 %2, 2
>>> br i1 %3, label %4, label %8
>>> ; <label>:4 ; preds = %0
>>> call void @llvm.assume(i1 %3...