Last active
December 21, 2021 22:02
-
-
Save nickdesaulniers/e13f16a0d98ce59afbe795298827e6fe to your computer and use it in GitHub Desktop.
diff of llvm/lib/Target/PowerPC/PPCISelLowering.cpp
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp | |
index d6ee6a9d6525..4ca72f819301 100644 | |
--- a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp | |
+++ b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp | |
@@ -546,11 +546,13 @@ PPCTargetLowering::PPCTargetLowering(const PPCTargetMachine &TM, | |
setOperationAction(ISD::GlobalAddress, MVT::i32, Custom); | |
setOperationAction(ISD::GlobalTLSAddress, MVT::i32, Custom); | |
setOperationAction(ISD::BlockAddress, MVT::i32, Custom); | |
+ setOperationAction(ISD::TargetBlockAddress, MVT::i32, Custom); | |
setOperationAction(ISD::ConstantPool, MVT::i32, Custom); | |
setOperationAction(ISD::JumpTable, MVT::i32, Custom); | |
setOperationAction(ISD::GlobalAddress, MVT::i64, Custom); | |
setOperationAction(ISD::GlobalTLSAddress, MVT::i64, Custom); | |
setOperationAction(ISD::BlockAddress, MVT::i64, Custom); | |
+ setOperationAction(ISD::TargetBlockAddress, MVT::i64, Custom); | |
setOperationAction(ISD::ConstantPool, MVT::i64, Custom); | |
setOperationAction(ISD::JumpTable, MVT::i64, Custom); | |
@@ -11027,6 +11029,7 @@ SDValue PPCTargetLowering::LowerOperation(SDValue Op, SelectionDAG &DAG) const { | |
switch (Op.getOpcode()) { | |
default: llvm_unreachable("Wasn't expecting to be able to lower this!"); | |
case ISD::ConstantPool: return LowerConstantPool(Op, DAG); | |
+ case ISD::TargetBlockAddress: | |
case ISD::BlockAddress: return LowerBlockAddress(Op, DAG); | |
case ISD::GlobalAddress: return LowerGlobalAddress(Op, DAG); | |
case ISD::GlobalTLSAddress: return LowerGlobalTLSAddress(Op, DAG); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ llvm-lit -vv llvm/test/CodeGen/PowerPC/ppc64-inlineasm-clobber.ll | |
-- Testing: 1 tests, 1 workers -- | |
FAIL: LLVM :: CodeGen/PowerPC/ppc64-inlineasm-clobber.ll (1 of 1) | |
******************** TEST 'LLVM :: CodeGen/PowerPC/ppc64-inlineasm-clobber.ll' FAILED ******************** | |
Script: | |
-- | |
: 'RUN: at line 2'; /android0/llvm-project/llvm/build/bin/llc -mtriple=powerpc64le-unknown-linux-unknown -verify-machineinstrs /android0/llvm-project/llvm/test/CodeGen/PowerPC/ppc64-inlineasm-clobber.ll -ppc-asm-full-reg-names -o - | /android0/llvm-project/llvm/build/bin/FileCheck /android0/llvm-project/llvm/test/CodeGen/PowerPC/ppc64-inlineasm-clobber.ll --check-prefix=PPC64LE | |
: 'RUN: at line 4'; /android0/llvm-project/llvm/build/bin/llc -mtriple=powerpc64-unknown-linux-unknown -verify-machineinstrs /android0/llvm-project/llvm/test/CodeGen/PowerPC/ppc64-inlineasm-clobber.ll -ppc-asm-full-reg-names -o - | /android0/llvm-project/llvm/build/bin/FileCheck /android0/llvm-project/llvm/test/CodeGen/PowerPC/ppc64-inlineasm-clobber.ll --check-prefix=PPC64BE | |
-- | |
Exit Code: 2 | |
Command Output (stderr): | |
-- | |
+ : 'RUN: at line 2' | |
+ /android0/llvm-project/llvm/build/bin/llc -mtriple=powerpc64le-unknown-linux-unknown -verify-machineinstrs /android0/llvm-project/llvm/test/CodeGen/PowerPC/ppc64-inlineasm-clobber.ll -ppc-asm-full-reg-names -o - | |
+ /android0/llvm-project/llvm/build/bin/FileCheck /android0/llvm-project/llvm/test/CodeGen/PowerPC/ppc64-inlineasm-clobber.ll --check-prefix=PPC64LE | |
Overran sorted position: | |
t20: i64,ch = PPCISD::TOC_ENTRY<(load (s64) from got)> t20, Register:i64 $x2 | |
t20: i64,ch = PPCISD::TOC_ENTRY<(load (s64) from got)> t20, Register:i64 $x2 | |
t20: i64,ch = PPCISD::TOC_ENTRY<(load (s64) from got)> t20, Register:i64 $x2 | |
t20: i64,ch = PPCISD::TOC_ENTRY<(load (s64) from got)> t20, Register:i64 $x2 | |
t20: i64,ch = PPCISD::TOC_ENTRY<(load (s64) from got)> t20, Register:i64 $x2 | |
t20: i64,ch = PPCISD::TOC_ENTRY<(load (s64) from got)> t20, Register:i64 $x2 | |
t20: i64,ch = PPCISD::TOC_ENTRY<(load (s64) from got)> t20, Register:i64 $x2 | |
t20: i64,ch = PPCISD::TOC_ENTRY<(load (s64) from got)> t20, Register:i64 $x2 | |
t20: i64,ch = PPCISD::TOC_ENTRY<(load (s64) from got)> t20, Register:i64 $x2 | |
t20: i64,ch = PPCISD::TOC_ENTRY<(load (s64) from got)> t20, Register:i64 $x2 | |
t19: i64 = Register $x2 | |
t19: i64 = Register $x2 | |
t19: i64 = Register $x2 | |
t19: i64 = Register $x2 | |
t19: i64 = Register $x2 | |
t19: i64 = Register $x2 | |
t19: i64 = Register $x2 | |
t19: i64 = Register $x2 | |
t19: i64 = Register $x2 | |
Checking if this is due to cycles | |
Detected cycle in SelectionDAG | |
Offending node: | |
t20: i64,ch = PPCISD::TOC_ENTRY<(load (s64) from got)> t20, Register:i64 $x2 | |
t20: i64,ch = PPCISD::TOC_ENTRY<(load (s64) from got)> t20, Register:i64 $x2 | |
t20: i64,ch = PPCISD::TOC_ENTRY<(load (s64) from got)> t20, Register:i64 $x2 | |
t20: i64,ch = PPCISD::TOC_ENTRY<(load (s64) from got)> t20, Register:i64 $x2 | |
t20: i64,ch = PPCISD::TOC_ENTRY<(load (s64) from got)> t20, Register:i64 $x2 | |
t20: i64,ch = PPCISD::TOC_ENTRY<(load (s64) from got)> t20, Register:i64 $x2 | |
t20: i64,ch = PPCISD::TOC_ENTRY<(load (s64) from got)> t20, Register:i64 $x2 | |
t20: i64,ch = PPCISD::TOC_ENTRY<(load (s64) from got)> t20, Register:i64 $x2 | |
t20: i64,ch = PPCISD::TOC_ENTRY<(load (s64) from got)> t20, Register:i64 $x2 | |
t20: i64,ch = PPCISD::TOC_ENTRY<(load (s64) from got)> t20, Register:i64 $x2 | |
t19: i64 = Register $x2 | |
t19: i64 = Register $x2 | |
t19: i64 = Register $x2 | |
t19: i64 = Register $x2 | |
t19: i64 = Register $x2 | |
t19: i64 = Register $x2 | |
t19: i64 = Register $x2 | |
t19: i64 = Register $x2 | |
t19: i64 = Register $x2 | |
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace. | |
Stack dump: | |
0. Program arguments: /android0/llvm-project/llvm/build/bin/llc -mtriple=powerpc64le-unknown-linux-unknown -verify-machineinstrs /android0/llvm-project/llvm/test/CodeGen/PowerPC/ppc64-inlineasm-clobber.ll -ppc-asm-full-reg-names -o - | |
1. Running pass 'Function Pass Manager' on module '/android0/llvm-project/llvm/test/CodeGen/PowerPC/ppc64-inlineasm-clobber.ll'. | |
2. Running pass 'PowerPC DAG->DAG Pattern Instruction Selection' on function '@ClobberLR_BR' | |
#0 0x00000000033456d3 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/android0/llvm-project/llvm/build/bin/llc+0x33456d3) | |
#1 0x000000000334348e llvm::sys::RunSignalHandlers() (/android0/llvm-project/llvm/build/bin/llc+0x334348e) | |
#2 0x0000000003345b9f SignalHandler(int) Signals.cpp:0:0 | |
#3 0x00007fbad350f8e0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x138e0) | |
#4 0x00007fbad2fa7e71 raise ./signal/../sysdeps/unix/sysv/linux/raise.c:50:1 | |
#5 0x00007fbad2f91536 abort ./stdlib/abort.c:81:7 | |
#6 0x0000000003179497 checkForCyclesHelper(llvm::SDNode const*, llvm::SmallPtrSetImpl<llvm::SDNode const*>&, llvm::SmallPtrSetImpl<llvm::SDNode const*>&, llvm::SelectionDAG const*) SelectionDAG.cpp:0:0 | |
#7 0x0000000003179382 checkForCyclesHelper(llvm::SDNode const*, llvm::SmallPtrSetImpl<llvm::SDNode const*>&, llvm::SmallPtrSetImpl<llvm::SDNode const*>&, llvm::SelectionDAG const*) SelectionDAG.cpp:0:0 | |
#8 0x0000000003179382 checkForCyclesHelper(llvm::SDNode const*, llvm::SmallPtrSetImpl<llvm::SDNode const*>&, llvm::SmallPtrSetImpl<llvm::SDNode const*>&, llvm::SelectionDAG const*) SelectionDAG.cpp:0:0 | |
#9 0x0000000003179382 checkForCyclesHelper(llvm::SDNode const*, llvm::SmallPtrSetImpl<llvm::SDNode const*>&, llvm::SmallPtrSetImpl<llvm::SDNode const*>&, llvm::SelectionDAG const*) SelectionDAG.cpp:0:0 | |
#10 0x00000000031734b1 llvm::checkForCycles(llvm::SDNode const*, llvm::SelectionDAG const*, bool) (/android0/llvm-project/llvm/build/bin/llc+0x31734b1) | |
#11 0x00000000031732e7 llvm::SelectionDAG::AssignTopologicalOrder() (/android0/llvm-project/llvm/build/bin/llc+0x31732e7) | |
#12 0x000000000318c4ff llvm::SelectionDAGISel::DoInstructionSelection() (/android0/llvm-project/llvm/build/bin/llc+0x318c4ff) | |
#13 0x000000000318b7a2 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/android0/llvm-project/llvm/build/bin/llc+0x318b7a2) | |
#14 0x0000000003189067 llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/android0/llvm-project/llvm/build/bin/llc+0x3189067) | |
#15 0x00000000031858bc llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/android0/llvm-project/llvm/build/bin/llc+0x31858bc) | |
#16 0x000000000205625f (anonymous namespace)::PPCDAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) PPCISelDAGToDAG.cpp:0:0 | |
#17 0x000000000262b40d llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/android0/llvm-project/llvm/build/bin/llc+0x262b40d) | |
#18 0x0000000002ae6a98 llvm::FPPassManager::runOnFunction(llvm::Function&) (/android0/llvm-project/llvm/build/bin/llc+0x2ae6a98) | |
#19 0x0000000002aeef41 llvm::FPPassManager::runOnModule(llvm::Module&) (/android0/llvm-project/llvm/build/bin/llc+0x2aeef41) | |
#20 0x0000000002ae75e1 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/android0/llvm-project/llvm/build/bin/llc+0x2ae75e1) | |
#21 0x00000000019104fa main (/android0/llvm-project/llvm/build/bin/llc+0x19104fa) | |
#22 0x00007fbad2f92e4a __libc_start_main ./csu/../csu/libc-start.c:314:16 | |
#23 0x000000000190db7a _start (/android0/llvm-project/llvm/build/bin/llc+0x190db7a) | |
FileCheck error: '<stdin>' is empty. | |
FileCheck command line: /android0/llvm-project/llvm/build/bin/FileCheck /android0/llvm-project/llvm/test/CodeGen/PowerPC/ppc64-inlineasm-clobber.ll --check-prefix=PPC64LE |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment