via llvm-dev
2019-Jan-22 21:15 UTC
[llvm-dev] Need help: How to turn off the constant folding optimization in llvm
Usually when someone talks about "constant folding optimization" they
mean an LLVM pass that operates on the IR to combine constants in operations
that had been expressed as instructions in the IR.
I think what you are looking at is a constant-expression evaluation that is done
before any IR is generated; in effect, it is being performed by the parser, not
the optimizer. I'm not aware of a command-line option to turn this off,
although there might be one.
If you just want to look at simple examples of IR, you could do this instead:
int y = 2;
y *= 4;
and this will produce a 'mul' instruction.
--paulr
From: llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] On Behalf Of Md.
Syadus Sefat via llvm-dev
Sent: Sunday, January 20, 2019 7:30 PM
To: llvm-dev at lists.llvm.org
Subject: [llvm-dev] Need help: How to turn off the constant folding optimization
in llvm
Hi, I am new to clang and llvm. I'm trying to generate an unoptimized
version of bit code from a c source code. I found that the generated bit code is
having the constant folding optimization which I don't want.
I'm using this command: clang -O0 -Xclang -disable-O0-optnone test1.c -S
-emit-llvm -o test1.ll
The test1.c file has the following code:
int test(){
int y;
y = 2 * 4;
return y;
}
The content of the test1.ll file:
[image.png]
Instead of generating an instruction for multiplying 2 and 4, it is directly
storing the value 8 by doing the constant folding operation.
store i32 8, i32* %1, align 4
It would be really nice if someone kindly let me know what I am missing and how
should I turn off the constant folding optimization.
Thank you.
Regards,
SS
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20190122/b3e421a0/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image002.png
Type: image/png
Size: 63517 bytes
Desc: image002.png
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20190122/b3e421a0/attachment-0001.png>