[LLVMdev] Avoiding Constant Folding
Cuong Pham
phamcuongbk at gmail.com
Mon Jun 13 17:33:08 PDT 2011
Hi All,
My codegen is trying to generate some thing like this:
entry:
....
%34 = icmp ne i32 %33, 15
br i1 %34, label %then, label %else
then: ; preds = %entry
%returnValue = or i1 true, false
....
br label %ifmerge
else: ; preds = %entry
br label %ifmerge
ifmerge: ; preds = %else, %then
...
%41 = icmp ne i32 %40, 15
br i1 %41, label %then1, label %else3
then1: ; preds = %ifmerge
%returnValue2 = or i1 true, %returnValue
else3: ; preds = %ifmerge
br label %ifmerge4
ifmerge4: ; preds = %else3, %then1
....
And I'm getting the following error:
Instruction does not dominate all uses!
%returnValue = or i1 true, false
%returnValue2 = or i1 true, %returnValue
Broken module found, compilation aborted!
>From the code I can see all the operands are i1 type, so the 'or'
instructions should be valid. Could some one give me some clues how to fix
this problem?
With Regards,
--Cuong
--
View this message in context: http://old.nabble.com/Avoiding-Constant-Folding-tp31838929p31838929.html
Sent from the LLVM - Dev mailing list archive at Nabble.com.
More information about the llvm-dev
mailing list