Displaying 11 results from an estimated 11 matches for "processnonlocalload".
2016 Jul 20
2
load instruction erroneously removed by GVN v2
...30 // write null byte at
end
%76 = getelementptr inbounds [80 x i16]* %dest, i64 0, i64 7, !dbg !20095
// load addr of null byte (7th index)
%77 = load i16* %76, align 2, !dbg !20095, !tbaa !20010
%78 = icmp eq i16 %77, 0, !dbg !20095
br i1 %78, label %80, label %79, !dbg !20095
GVN calls processNonLocalLoad() on "%77 = load..." and replaces it with
init value from scalar.ph.
bb2:
%lcssa = phi [%ptr, loop1], [%ptr, preheader]
store i16 0, i16* %lcssa, !dbg !20094, !tbaa !20030
%76 = getelementptr inbounds [80 x i16]* %dest, i64 0, i64 7, !dbg !20095
br i1 icmp eq (i16 trunc (i128 lshr (i128...
[LLVMdev] Register pressure mechanism in PRE or Smarter rematerialization/split/spiller/coalescing ?
2015 Jul 15
4
[LLVMdev] Register pressure mechanism in PRE or Smarter rematerialization/split/spiller/coalescing ?
...hat would be as well.
>
Ugh, actually, it should be a win with the following change:
diff --git a/lib/Transforms/Scalar/GVN.cpp b/lib/Transforms/Scalar/GVN.cpp
index 2c47a8a..a3387e3 100644
--- a/lib/Transforms/Scalar/GVN.cpp
+++ b/lib/Transforms/Scalar/GVN.cpp
@@ -1767,7 +1767,7 @@ bool GVN::processNonLocalLoad(LoadInst *LI) {
}
// Step 4: Eliminate partial redundancy.
- if (!EnablePRE || !EnableLoadPRE)
+ if (!EnableLoadPRE)
return false;
return PerformLoadPRE(LI, ValuesPerBlock, UnavailableBlocks);
This will disable Scalar PRE without disabling load PRE.
(note, again, however, th...
2016 Jul 20
2
load instruction erroneously removed by GVN v2
...nbounds [80 x i16]* %dest, i64 0, i64 7, !dbg
>> !20095 // load addr of null byte (7th index)
>> %77 = load i16* %76, align 2, !dbg !20095, !tbaa !20010
>> %78 = icmp eq i16 %77, 0, !dbg !20095
>> br i1 %78, label %80, label %79, !dbg !20095
>>
>> GVN calls processNonLocalLoad() on "%77 = load..." and replaces it with
>> init value from scalar.ph.
>>
>>
>
>
>> bb2:
>> %lcssa = phi [%ptr, loop1], [%ptr, preheader]
>> store i16 0, i16* %lcssa, !dbg !20094, !tbaa !20030
>> %76 = getelementptr inbounds [80 x i16]* %de...
2016 Jul 20
2
load instruction erroneously removed by GVN v2
...t;>>> !20095 // load addr of null byte (7th index)
>>>> %77 = load i16* %76, align 2, !dbg !20095, !tbaa !20010
>>>> %78 = icmp eq i16 %77, 0, !dbg !20095
>>>> br i1 %78, label %80, label %79, !dbg !20095
>>>>
>>>> GVN calls processNonLocalLoad() on "%77 = load..." and replaces it with
>>>> init value from scalar.ph.
>>>>
>>>>
>>>
>>>
>>>> bb2:
>>>> %lcssa = phi [%ptr, loop1], [%ptr, preheader]
>>>> store i16 0, i16* %lcssa, !dbg !20094, !t...
[LLVMdev] Register pressure mechanism in PRE or Smarter rematerialization/split/spiller/coalescing ?
2015 Jul 17
2
[LLVMdev] Register pressure mechanism in PRE or Smarter rematerialization/split/spiller/coalescing ?
...Ugh, actually, it should be a win with the following change:
>
>
> diff --git a/lib/Transforms/Scalar/GVN.cpp b/lib/Transforms/Scalar/GVN.cpp index 2c47a8a..a3387e3 100644
> --- a/lib/Transforms/Scalar/GVN.cpp
> +++ b/lib/Transforms/Scalar/GVN.cpp
> @@ -1767,7 +1767,7 @@ bool GVN::processNonLocalLoad(LoadInst *LI) {
> }
>
> // Step 4: Eliminate partial redundancy.
> - if (!EnablePRE || !EnableLoadPRE)
> + if (!EnableLoadPRE)
> return false;
>
> return PerformLoadPRE(LI, ValuesPerBlock, UnavailableBlocks);
>
>
>
>
> This will disable Scalar...
2017 Jan 13
4
Wrong code bug after GVN/PRE?
...fg -instcombine
and then
-gvn
I don't get the
GVN REMOVING PRE LOAD
printout, and the resulting code looks ok to me.
Is this expected? Should the output differ in these two cases?
The input to gvn looks the same when running all passes and just gvn,
but I see a difference in how GVN::processNonLocalLoad(LoadInst *LI)
behaves:
I get different results from
// Step 1: Find the non-local dependencies of the load.
LoadDepVect Deps;
MD->getNonLocalPointerDependency(LI, Deps);
So we get different results from MemoryDependenceResults when invoking
gvn alone or after a bunch of other passe...
2017 Jan 13
2
Wrong code bug after GVN/PRE?
...G PRE LOAD
>>
>> printout, and the resulting code looks ok to me.
>>
>> Is this expected? Should the output differ in these two cases?
>>
>>
>> The input to gvn looks the same when running all passes and just gvn, but
>> I see a difference in how GVN::processNonLocalLoad(LoadInst *LI) behaves:
>>
>> I get different results from
>>
>> // Step 1: Find the non-local dependencies of the load.
>> LoadDepVect Deps;
>> MD->getNonLocalPointerDependency(LI, Deps);
>>
>> So we get different results from MemoryDependenc...
2008 Dec 16
2
[LLVMdev] ICE while building llvm-gcc
.../llvm/trunk/obj/../src/include -D_DEBUG
-I/opt/local/include -D_GNU_SOURCE -D__STDC_LIMIT_MACROS
-D__STDC_CONSTANT_MACROS -o build/genautomata.o
../../src/gcc/genautomata.c
Assertion failed: (UnavailablePred != 0 && "Fully available value
should be eliminated above!"), function processNonLocalLoad, file
/Users/jyasskin/src/llvm/trunk/src/lib/Transforms/Scalar/GVN.cpp, line
1108.
../../src/gcc/genautomata.c:9450: internal compiler error: Abort trap
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://developer.apple.com/bugreporter> for instructions....
2015 Jul 21
6
[LLVMdev] GlobalsModRef (and thus LTO) is completely broken
...3b
> libLTO.dylib`llvm::MemoryDependenceAnalysis::getNonLocalPointerDependency(this=0x000000010e6cf0c0,
> QueryInst=0x000000010a1a20c8, Result=0x00007fff5fbf6bf0) + 635 at
> MemoryDependenceAnalysis.cpp:911
> frame #7: 0x000000010340c5b5 libLTO.dylib`(anonymous
> namespace)::GVN::processNonLocalLoad(this=0x000000010e6ce680,
> LI=0x000000010a1a20c8) + 101 at GVN.cpp:1706
> frame #8: 0x0000000103408eef libLTO.dylib`(anonymous
> namespace)::GVN::processLoad(this=0x000000010e6ce680, L=0x000000010a1a20c8)
> + 1551 at GVN.cpp:1905
> frame #9: 0x00000001034080fd libLTO.dylib`(a...
[LLVMdev] Register pressure mechanism in PRE or Smarter rematerialization/split/spiller/coalescing ?
2015 Jul 15
3
[LLVMdev] Register pressure mechanism in PRE or Smarter rematerialization/split/spiller/coalescing ?
Hi, Daniel:
Thanks a lot for detailed background information, we are willing to provide the right fix, however it will take time, do you mind if you forward me the discussion you had 5 months ago? I may not be able to access it since I only joined ellvmdev list this week.
I did some performance measurement last night, some of our critical benchmark degraded up to 30% with your patch, so we have
2015 Jul 17
2
[LLVMdev] GlobalsModRef (and thus LTO) is completely broken
On Fri, Jul 17, 2015 at 9:13 AM Evgeny Astigeevich <
evgeny.astigeevich at arm.com> wrote:
> It’s Dhrystone.
>
Dhrystone has historically not been a good indicator of real-world
performance fluctuations, especially at this small of a shift.
I'd like to see if we see any fluctuation on larger and more realistic
application benchmarks. One advantage of the flag being set is that we