llvm / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
http://llvm.org
Other
28.69k stars 11.86k forks source link

[META][GVN] NewGVN Integration #30343

Open RKSimon opened 7 years ago

RKSimon commented 7 years ago
Bugzilla Link 30995
Version trunk
OS All
Depends On llvm/llvm-project#30119 llvm/llvm-project#30859 llvm/llvm-project#30871 llvm/llvm-project#30961 llvm/llvm-project#31140 llvm/llvm-project#31215 llvm/llvm-project#31793 llvm/llvm-project#35683 llvm/llvm-project#36469 llvm/llvm-project#29898 llvm/llvm-project#30816 llvm/llvm-project#30820 llvm/llvm-project#30828 llvm/llvm-project#30831 llvm/llvm-project#30839 llvm/llvm-project#30847 llvm/llvm-project#30849 llvm/llvm-project#30860 llvm/llvm-project#30902 llvm/llvm-project#30921 llvm/llvm-project#30942 llvm/llvm-project#31030 llvm/llvm-project#31034 llvm/llvm-project#31046 llvm/llvm-project#31097 llvm/llvm-project#31106 llvm/llvm-project#31216 llvm/llvm-project#31696 llvm/llvm-project#31750 llvm/llvm-project#32512 llvm/llvm-project#32714 llvm/llvm-project#32747 llvm/llvm-project#34422 llvm/llvm-project#34537 llvm/llvm-project#34931 llvm/llvm-project#35149 llvm/llvm-project#35187 llvm/llvm-project#36888 llvm/llvm-project#36889 llvm/llvm-project#38404 llvm/llvm-project#38405 llvm/llvm-project#38627 llvm/llvm-project#41767
CC @alinas,@andrewrk,@Bigcheese,@Theodor,@filcab,@fhahn,@hfinkel,@LebedevRI,@slacka,@nunoplopes,@JonPsson,@sanjoy,@stbergmann

Extended Description

Meta ticket covering the addition of the NewGVN pass.

WIP Patch: https://reviews.llvm.org/D26224

952e6d5a-d994-4724-a6d1-07613b2d95a8 commented 2 years ago

mentioned in issue llvm/llvm-project#41767

JonPsson commented 2 years ago

mentioned in issue llvm/llvm-project#38627

llvmbot commented 2 years ago

mentioned in issue llvm/llvm-project#38405

llvmbot commented 2 years ago

mentioned in issue llvm/llvm-project#38404

nikic commented 2 years ago

mentioned in issue llvm/llvm-project#36889

nikic commented 2 years ago

mentioned in issue llvm/llvm-project#36888

rotateright commented 2 years ago

mentioned in issue llvm/llvm-project#36469

zhendongsu commented 2 years ago

mentioned in issue llvm/llvm-project#35683

andrewrk commented 2 years ago

mentioned in issue llvm/llvm-project#35187

zhendongsu commented 2 years ago

mentioned in issue llvm/llvm-project#35149

dbabokin commented 2 years ago

mentioned in issue llvm/llvm-project#34931

f1376df8-34bc-4756-9be6-f8bc6a69b887 commented 2 years ago

mentioned in issue llvm/llvm-project#34537

llvmbot commented 2 years ago

mentioned in issue llvm/llvm-project#34422

f1376df8-34bc-4756-9be6-f8bc6a69b887 commented 2 years ago

mentioned in issue llvm/llvm-project#32747

llvmbot commented 2 years ago

mentioned in issue llvm/llvm-project#32714

nunoplopes commented 2 years ago

mentioned in issue llvm/llvm-project#32512

Keno commented 2 years ago

mentioned in issue llvm/llvm-project#31793

llvmbot commented 2 years ago

mentioned in issue llvm/llvm-project#31750

f1376df8-34bc-4756-9be6-f8bc6a69b887 commented 2 years ago

mentioned in issue llvm/llvm-project#31696

llvmbot commented 2 years ago

mentioned in issue llvm/llvm-project#31216

llvmbot commented 2 years ago

mentioned in issue llvm/llvm-project#31215

llvmbot commented 2 years ago

mentioned in issue llvm/llvm-project#31140

llvmbot commented 2 years ago

mentioned in issue llvm/llvm-project#31106

llvmbot commented 2 years ago

mentioned in issue llvm/llvm-project#31097

Bigcheese commented 2 years ago

mentioned in issue llvm/llvm-project#31046

llvmbot commented 2 years ago

mentioned in issue llvm/llvm-project#31034

llvmbot commented 2 years ago

mentioned in issue llvm/llvm-project#31030

llvmbot commented 2 years ago

mentioned in issue llvm/llvm-project#30961

llvmbot commented 2 years ago

mentioned in issue llvm/llvm-project#30942

llvmbot commented 2 years ago

mentioned in issue llvm/llvm-project#30921

gregbedwell commented 2 years ago

mentioned in issue llvm/llvm-project#30902

preames commented 2 years ago

mentioned in issue llvm/llvm-project#30871

rotateright commented 2 years ago

mentioned in issue llvm/llvm-project#30860

llvmbot commented 2 years ago

mentioned in issue llvm/llvm-project#30859

llvmbot commented 2 years ago

mentioned in issue llvm/llvm-project#30849

f1376df8-34bc-4756-9be6-f8bc6a69b887 commented 2 years ago

mentioned in issue llvm/llvm-project#30847

f1376df8-34bc-4756-9be6-f8bc6a69b887 commented 2 years ago

mentioned in issue llvm/llvm-project#30839

nemanjai commented 2 years ago

mentioned in issue llvm/llvm-project#30831

llvmbot commented 2 years ago

mentioned in issue llvm/llvm-project#30828

llvmbot commented 2 years ago

mentioned in issue llvm/llvm-project#30820

llvmbot commented 2 years ago

mentioned in issue llvm/llvm-project#30816

llvmbot commented 7 years ago

Huh, I got still another fail today on SystemZ with llvm/trunk@292353 cfe/trunk@292343 test-suite/trunk@292129

NewGVN.cpp:1084: void NewGVN::moveValueToNewCongruenceClass(llvm::Instruction, CongruenceClass, CongruenceClass*): Assertion `(!isa(NewClass->RepLeader) || !NewClass->RepLeader || I == NewClass->RepLeader || !DT->properlyDominates( I->getParent(), cast(NewClass->RepLeader)->getParent())) && "New class for instruction should not be dominated by instruction"' failed.

/bin/opt -O3 -enable-newgvn -S ./newgvn_fail.ll

I postedthe reduced test-case above.

Thank you very much. I'll reduce/investigate this. For the future, do you mind to open a new issue and link it here? It would make our tracking much easier =)

JonPsson commented 7 years ago

Huh, I got still another fail today on SystemZ with llvm/trunk@292353 cfe/trunk@292343 test-suite/trunk@292129

NewGVN.cpp:1084: void NewGVN::moveValueToNewCongruenceClass(llvm::Instruction, CongruenceClass, CongruenceClass*): Assertion `(!isa(NewClass->RepLeader) || !NewClass->RepLeader || I == NewClass->RepLeader || !DT->properlyDominates( I->getParent(), cast(NewClass->RepLeader)->getParent())) && "New class for instruction should not be dominated by instruction"' failed.

/bin/opt -O3 -enable-newgvn -S ./newgvn_fail.ll

I postedthe reduced test-case above.

JonPsson commented 7 years ago

reduced test case for opt with newgvn crash

llvmbot commented 7 years ago

Ah, great :-)

I tried to apply the attached patch, but it did not apply cleanly anymore, at least not in my repo with latest changes.

Let me know when the test-suite passes on X86, and I will gladly run it on SystemZ.

/Jonas

LLVM passes test-suite on X86 now, so I think we're in a good shape to try on other platforms if you want to take a look.

damn, s/LLVM/LLVM with NewGVN/

llvmbot commented 7 years ago

Ah, great :-)

I tried to apply the attached patch, but it did not apply cleanly anymore, at least not in my repo with latest changes.

Let me know when the test-suite passes on X86, and I will gladly run it on SystemZ.

/Jonas

LLVM passes test-suite on X86 now, so I think we're in a good shape to try on other platforms if you want to take a look.

JonPsson commented 7 years ago

Ah, great :-)

I tried to apply the attached patch, but it did not apply cleanly anymore, at least not in my repo with latest changes.

Let me know when the test-suite passes on X86, and I will gladly run it on SystemZ.

/Jonas

llvmbot commented 7 years ago

Sorry, but I haven't even opened the NewGVN.cpp file. My idea was to contribute by running the test-suite on SystemZ, which I did. I was expecting the author(s) of the code would then take the time to fix any issues.

I did =) https://llvm.org/bugs/show_bug.cgi?id=31573

JonPsson commented 7 years ago

(and yes, the crash I found is still there as far as I can see)

JonPsson commented 7 years ago

Sorry, but I haven't even opened the NewGVN.cpp file. My idea was to contribute by running the test-suite on SystemZ, which I did. I was expecting the author(s) of the code would then take the time to fix any issues.