[llvm-dev] TryToShrinkGlobalToBoolean in GlobalOpt.cpp issue

Mehdi Amini via llvm-dev llvm-dev at lists.llvm.org
Tue Aug 30 14:52:21 PDT 2016


> On Aug 30, 2016, at 1:01 PM, Ryan Taylor via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> 
> Given some code:
> 
> static int x = 100;
> 
> int main() {
>    x = 101;
>    printf("%d\n", x);
> }
> 
> results in:
> 
> %0 = load i1
> %1 = select %0, 101, 100

If x is only touched in one function, I’d expect globlaopt to turn it into an alloca instead of leaving it global and shrinking it.
Did you oversimplify the real case where you see this for the sake of the example here?

— 
Mehdi


> ...
> ...
> 
> 1) What architecture(s) does this benefit?
> 2) What's the best way to circumvent this in the backend (currently I am just not allowing this opt function to run)? I have tried a few setOperationAction methods to no result. Rather not just comment out core code because it makes porting more difficult.
> 
> -Ryan
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev



More information about the llvm-dev mailing list