[LLVMdev] Loop localize global variables
sundeepk at codeaurora.org
sundeepk at codeaurora.org
Mon Jul 20 22:07:31 PDT 2015
Hello all,
I am writing to get some feedback on an optimization that I would like to
upstream. The basic idea is to localize global variables inside loops so
that it can be allocated into registers. For example, transform the
following sequence
static int gbl_var;
void foo() {
for () {
...access gbl_var...
}
}
into something like
static int gbl_var;
void foo() {
int lcl_var;
lcl_var = gbl_var;
for () {
...access clc_var...
}
gbl_var = lcl_var;
}
This transformation helps a couple of EEMBC benchmarks on both Aarch64 and
Hexagon backends. I was wondering if there is interest to get this
optimization upstreamed or if there is a better way of doing this.
Thanks,
Sundeep
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
More information about the llvm-dev
mailing list