LLVM backend for 6502
Go to file
Arnold Schwaighofer cbfa1ca993 LoopVectorize: Use the dependence test utility class
We now no longer need alias analysis - the cases that alias analysis would
handle are now handled as accesses with a large dependence distance.

We can now vectorize loops with simple constant dependence distances.

  for (i = 8; i < 256; ++i) {
    a[i] = a[i+4] * a[i+8];
  }

  for (i = 8; i < 256; ++i) {
    a[i] = a[i-4] * a[i-8];
  }

We would be able to vectorize about 200 more loops (in many cases the cost model
instructs us no to) in the test suite now. Results on x86-64 are a wash.

I have seen one degradation in ammp. Interestingly, the function in which we
now vectorize a loop is never executed so we probably see some instruction
cache effects. There is a 2% improvement in h264ref. There is one or the other
TSCV loop kernel that speeds up.

radar://13681598

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184685 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-24 03:55:48 +00:00
autoconf Don't define LTDL_SHLIBPATH_VAR. 2013-06-11 19:04:13 +00:00
bindings We're in 3.4 land now. 2013-05-07 20:31:28 +00:00
cmake Revert "Cmake: add compiler option in a more idiomatic way" 2013-06-14 19:41:05 +00:00
docs Add a release note for removing the simplify-libcalls pass. 2013-06-21 03:08:23 +00:00
examples ExceptionDemo: Corresponding to r181820, SectionMemoryManager should belong to RTDyldMemoryManager. 2013-05-14 23:05:00 +00:00
include DebugInfo: PR14404: Avoid truncating 64 bit values into 32 bits for ULEB128/SLEB128 generation 2013-06-23 18:31:11 +00:00
lib LoopVectorize: Use the dependence test utility class 2013-06-24 03:55:48 +00:00
projects Don't define LTDL_SHLIBPATH_VAR. 2013-06-11 19:04:13 +00:00
runtime Remove "-Wl,-seg1addr -Wl,0xE0000000" from link options. 2013-06-04 15:26:37 +00:00
test LoopVectorize: Use the dependence test utility class 2013-06-24 03:55:48 +00:00
tools Create the file with the right permissions instead of setting it afterwards. 2013-06-22 02:34:24 +00:00
unittests Revert "BlockFrequency: Saturate at 1 instead of 0 when multiplying a frequency with a branch probability." 2013-06-21 20:20:27 +00:00
utils Add support for encoding the HLE XACQUIRE and XRELEASE prefixes. 2013-06-18 17:08:10 +00:00
.arcconfig
.gitignore
CMakeLists.txt Allow duplicates in LLVM_TARGETS_TO_BUILD and LLVM_EXPERIMENTAL_TARGETS_TO_BUILD. 2013-05-22 02:45:28 +00:00
CODE_OWNERS.TXT Add myself as SystemZ code owner 2013-05-08 14:41:29 +00:00
configure Don't define LTDL_SHLIBPATH_VAR. 2013-06-11 19:04:13 +00:00
CREDITS.TXT Identify me on IRC. 2013-06-18 22:09:36 +00:00
LICENSE.TXT Be more specific and capitalize filenames. 2013-05-21 21:22:34 +00:00
llvm.spec.in
LLVMBuild.txt LLVMBuild: Introduce a common section which currently has a list of the 2011-12-12 22:45:54 +00:00
Makefile
Makefile.common
Makefile.config.in
Makefile.rules Remove redundant rpath. 2013-05-23 02:53:22 +00:00
README.txt test 2013-04-17 05:34:03 +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 documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you're writing a package for LLVM, see docs/Packaging.rst for our
suggestions.