Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

llc crashes with "UNREACHABLE executed" message #14269

Closed
llvmbot opened this issue Sep 21, 2012 · 9 comments
Closed

llc crashes with "UNREACHABLE executed" message #14269

llvmbot opened this issue Sep 21, 2012 · 9 comments
Labels
bugzilla Issues migrated from bugzilla llvm:codegen

Comments

@llvmbot
Copy link
Member

llvmbot commented Sep 21, 2012

Bugzilla Link 13897
Resolution FIXED
Resolved on Mar 22, 2019 10:54
Version 3.1
OS Windows XP
Reporter LLVM Bugzilla Contributor
CC @isanbard,@RKSimon,@slacka,@seanm

Extended Description

i have a simple IR file like below:

;;;;;;;;;;;;;
; ModuleID = 'gg.bc'
@​aaa = external global i128
@​bbb = external global i128

define void @​depasta() nounwind {
"0x0":
%0 = load i128* @​bbb
%1 = and i128 %0, 4294967295
%2 = shl i128 %0, 96
%3 = mul i128 %1, 18446744078004518913
%4 = add i128 %3, %2
store i128 %4, i128* @​aaa
ret void
}
;;;;;;;;;

i tried to compile this IR file to bitcode file (with llvm-as), then
compile BC file to native code (with llc).
however, llc crashes like below:


C:>llvm-as gg.ll
C:>llc -filetype=obj gg.bc
UNREACHABLE executed!

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

this looks like a bug, doesn't it? any idea why?

this is LLVM 3.1, on Windows 32bit.

@llvmbot
Copy link
Member Author

llvmbot commented Sep 21, 2012

Duncan Sands reported on mailing list:

....
I can reproduce this with "llc -mtriple=i386-linux-gnu", the crash being

Call result #​3 has unhandled type i32
UNREACHABLE executed at /home/duncan/LLVM/llvm/lib/CodeGen/CallingConvLower.cpp:165!
...
llvm::CCState::AnalyzeCallResult(llvm::SmallVectorImplllvm::ISD::InputArg const&, bool (*)(unsigned int, llvm::MVT, llvm::MVT, llvm::CCValAssign::LocInfo, llvm::ISD::ArgFlagsTy, llvm::CCState&)) + 284
...

@llvmbot
Copy link
Member Author

llvmbot commented Sep 29, 2012

I think the basic problem is that 128 bit multiplication is not supported on 32
bit machines because it needs to be turned into a call to a library function (in
libgcc or compiler-rt) and no such library function exists.

@llvmbot
Copy link
Member Author

llvmbot commented Oct 3, 2012

rdar://12409066

@isanbard
Copy link
Contributor

What is the status of this bug? I need to know if it's a real "release blocker" or not. :)

@llvmbot
Copy link
Member Author

llvmbot commented Feb 26, 2014

*** Bug #8751 has been marked as a duplicate of this bug. ***

@llvmbot
Copy link
Member Author

llvmbot commented Feb 26, 2014

*** Bug llvm/llvm-bugzilla-archive#14469 has been marked as a duplicate of this bug. ***

@RKSimon
Copy link
Collaborator

RKSimon commented Mar 22, 2019

This was fixed years ago - added a test case at rL356786

@llvmbot
Copy link
Member Author

llvmbot commented Nov 26, 2021

mentioned in issue llvm/llvm-bugzilla-archive#14469

@llvmbot
Copy link
Member Author

llvmbot commented Nov 27, 2021

mentioned in issue #8751

@llvmbot llvmbot transferred this issue from llvm/llvm-bugzilla-archive Dec 3, 2021
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bugzilla Issues migrated from bugzilla llvm:codegen
Projects
None yet
Development

No branches or pull requests

3 participants