[llvm-commits] [llvm] r118936 - /llvm/trunk/lib/Target/ARM/ARMFastISel.cpp

Evan Cheng evan.cheng at apple.com
Fri Nov 12 15:48:44 PST 2010


Is this related to:

******************** TEST 'LLVM :: CodeGen/ARM/fast-isel.ll' FAILED ********************
Script:
--
llc < /Volumes/Ebi/echeng/llvm/test/CodeGen/ARM/fast-isel.ll -O0 -fast-isel-abort -mtriple=armv7-apple-darwin
llc < /Volumes/Ebi/echeng/llvm/test/CodeGen/ARM/fast-isel.ll -O0 -fast-isel-abort -mtriple=thumbv7-apple-darwin
--
Exit Code: 132
Command Output (stderr):
--
FastISel miss:   %t8 = getelementptr i32* %t7, i32 %t6
FastISel didn't select the entire block
UNREACHABLE executed at SelectionDAGISel.cpp:899!
0  llc               0x0000000106505ac5 PrintStackTrace(void*) + 53
1  llc               0x00000001065060d3 SignalHandler(int) + 371
2  libsystem_c.dylib 0x00007fff8048179a _sigtramp + 26
3  libsystem_c.dylib 0x00007fff80446725 szone_free_definite_size + 3888
4  llc               0x0000000106505d9b raise + 27
5  llc               0x0000000106505e5a abort + 26
6  llc               0x00000001064d595c llvm::llvm_unreachable_internal(char const*, char const*, unsigned int) + 220
7  llc               0x0000000105e9c0cf llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) + 2111
8  llc               0x0000000105e9adea llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) + 842
9  llc               0x0000000105ffcd21 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 97
10 llc               0x00000001063ee64f llvm::FPPassManager::runOnFunction(llvm::Function&) + 383
11 llc               0x00000001063ee9d1 llvm::FPPassManager::runOnModule(llvm::Module&) + 129
12 llc               0x00000001063eec09 llvm::MPPassManager::runOnModule(llvm::Module&) + 473
13 llc               0x00000001063ef316 llvm::PassManagerImpl::run(llvm::Module&) + 182
14 llc               0x00000001063ef76d llvm::PassManager::run(llvm::Module&) + 29
15 llc               0x00000001058c7a80 main + 3072
16 llc               0x00000001058c6e34 start + 52
Stack dump:
0.      Program arguments: llc -O0 -fast-isel-abort -mtriple=armv7-apple-darwin
1.      Running pass 'Function Pass Manager' on module '<stdin>'.
2.      Running pass 'ARM Instruction Selection' on function '@foo'

Evan
On Nov 12, 2010, at 2:52 PM, Eric Christopher wrote:

> Author: echristo
> Date: Fri Nov 12 16:52:32 2010
> New Revision: 118936
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=118936&view=rev
> Log:
> Make this happen for ARM like x86. Don't entirely bail out when
> an address is in a different block, get it into a register and go
> from there.
> 
> Modified:
>    llvm/trunk/lib/Target/ARM/ARMFastISel.cpp
> 
> Modified: llvm/trunk/lib/Target/ARM/ARMFastISel.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMFastISel.cpp?rev=118936&r1=118935&r2=118936&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/ARM/ARMFastISel.cpp (original)
> +++ llvm/trunk/lib/Target/ARM/ARMFastISel.cpp Fri Nov 12 16:52:32 2010
> @@ -590,10 +590,11 @@
>     // Don't walk into other basic blocks; it's possible we haven't
>     // visited them yet, so the instructions may not yet be assigned
>     // virtual registers.
> -    if (FuncInfo.MBBMap[I->getParent()] != FuncInfo.MBB)
> -      return false;
> -    Opcode = I->getOpcode();
> -    U = I;
> +    if (FuncInfo.StaticAllocaMap.count(static_cast<const AllocaInst *>(Obj)) ||
> +        FuncInfo.MBBMap[I->getParent()] == FuncInfo.MBB) {
> +      Opcode = I->getOpcode();
> +      U = I;
> +    }
>   } else if (const ConstantExpr *C = dyn_cast<ConstantExpr>(Obj)) {
>     Opcode = C->getOpcode();
>     U = C;
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits





More information about the llvm-commits mailing list