1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 20:12:56 +02:00
Go to file
Bill Wendling 4c22e299ef If we have a load of a global address that's not modified during the
function, then go ahead and hoist it out of the loop. This is the result:

$ cat a.c
volatile int G;

int A(int N) {
  for (; N > 0; --N)
    G++;
}
$ llc -o - -relocation-model=pic
_A:
...
LBB1_2: # bb
        movl    L_G$non_lazy_ptr-"L1$pb"(%eax), %esi
        incl    (%esi)
        incl    %edx
        cmpl    %ecx, %edx
        jne     LBB1_2  # bb
...
$ llc -o - -relocation-model=pic -machine-licm
_A:
...
        movl    L_G$non_lazy_ptr-"L1$pb"(%eax), %eax
LBB1_2: # bb
        incl    (%eax)
        incl    %edx
        cmpl    %ecx, %edx
        jne     LBB1_2  # bb
...

I'm limiting this to the MOV32rm x86 instruction for now.

llvm-svn: 45444
2007-12-30 03:18:58 +00:00
autoconf remove attribution from a variety of miscellaneous files. 2007-12-29 22:59:10 +00:00
bindings remove attribution from a variety of miscellaneous files. 2007-12-29 22:59:10 +00:00
docs remove attributions from the rest of the llvm makefiles. 2007-12-29 20:11:13 +00:00
examples remove attributions from examples. 2007-12-29 20:37:57 +00:00
include remove unneeded #includes. 2007-12-30 01:11:43 +00:00
lib If we have a load of a global address that's not modified during the 2007-12-30 03:18:58 +00:00
projects remove attributions from the rest of the llvm makefiles. 2007-12-29 20:11:13 +00:00
runtime remove attribution from a variety of miscellaneous files. 2007-12-29 22:59:10 +00:00
test Bindings for instruction calling conventions. 2007-12-29 20:45:00 +00:00
tools remove attribution from a variety of miscellaneous files. 2007-12-29 22:59:10 +00:00
utils tblgen shouldn't include headers from llvm codegen. 2007-12-30 00:25:23 +00:00
website Prepare for "core" website. 2007-08-03 05:43:35 +00:00
win32 Add StringPool + new CodeGen files to win32 build 2007-12-10 19:31:09 +00:00
Xcode C and Ocaml bindings for ExecutionEngine (i.e., the JIT compiler). 2007-12-23 16:59:28 +00:00
build-for-llvm-top.sh Allow the configure options to be set according to the llvm-top options. 2007-08-31 19:53:42 +00:00
configure Do not build CBackend and MSIL regardless of configured targets 2007-12-13 01:18:52 +00:00
CREDITS.TXT Update credits. 2007-12-11 09:32:07 +00:00
LICENSE.TXT Updated source file headers to llvm coding standard. 2007-12-05 01:40:25 +00:00
llvm.spec.in * llvm.spec.in: update blurb 2007-07-13 09:48:29 +00:00
Makefile remove attributions from the rest of the llvm makefiles. 2007-12-29 20:11:13 +00:00
Makefile.common remove attributions from the rest of the llvm makefiles. 2007-12-29 20:11:13 +00:00
Makefile.config.in remove attributions from the rest of the llvm makefiles. 2007-12-29 20:11:13 +00:00
Makefile.rules remove attributions from the rest of the llvm makefiles. 2007-12-29 20:11:13 +00:00
ModuleInfo.txt Update to include clean and install commands. 2007-07-20 20:54:41 +00:00
README.txt test 2007-04-20 20:49:25 +00:00

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for the Low Level 
Virtual Machine, a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments. 

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the HTML documentation provided in docs/index.html for further
assistance with LLVM.