Hi, all. I am generating LLVM IR code for x64 platform using LLVM 64bit libraries , and for some reason I need to move to 32bit. But after building 32bit libraries I found that IR code generates incorrectly and it causes segfault. For example, instead of generating function call it generates function phi. 64bit libs: init: ; preds = %pre_entry call void @Init() br label %entry 32bit libs: init: phi void [ @Init(), <null operand!> ] br label entry Or other example. Instead of this: lpad: ; preds = %entry %lpad1 = landingpad { i8*, i32 } personality i32 (...)* @__gxx_personality_v0 catch i8* bitcast (i8** @_ZTIPKc to i8*) %exn = extractvalue { i8*, i32 } %lpad1, 0 <------ store i8* %exn, i8** %exn.slot %ehselector = extractvalue { i8*, i32 } %lpad1, 1 store i32 %ehselector, i32* %ehselector.slot br label %catch catch: ; preds = %lpad %exn2 = load i8** %exn.slot %1 = call i8* @__cxa_begin_catch(i8* %exn2) call void (i8*, ...)* @_printf(i8* %1) <-------- br label %ret I get this code: lpad: ; preds = %entry %lpad1 = landingpad { i8*, i32 } personality i32 (...)* @__gxx_personality_v0 catch i8* bitcast (i8** @_ZTIPKc to i8*) %exn = shufflevector { i8*, i32 } %lpad1 <--------- store i8* %exn, i8** %exn.slot %ehselector = shufflevector { i8*, i32 } %lpad1 store i32 %ehselector, i32* %ehselector.slot br label %catch catch: ; preds = %lpad %exn2 = load i8** %exn.slot %1 = phi i8* [ %exn2, <null operand!> ], [ @__cxa_begin_catch, Segmentation fault (core dumped) Anyone can tell me what is it? Is it a bug of LLVM or our codegen? -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140627/68dcf2db/attachment.html>