LLVM backend for 6502
Go to file
Arnold Schwaighofer bc7c58d2b1 Reapply 184685 after the SetVector iteration order fix.
This should hopefully have fixed the stage2/stage3 miscompare on the dragonegg
testers.

"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@184724 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-24 12:09:15 +00:00
autoconf Don't define LTDL_SHLIBPATH_VAR. 2013-06-11 19:04:13 +00:00
bindings
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 [APFloat] Added support for parsing float strings which contain {inf,-inf,NaN,-NaN}. 2013-06-24 09:58:05 +00:00
lib Reapply 184685 after the SetVector iteration order fix. 2013-06-24 12:09:15 +00:00
projects Filter out dragonegg when checked out into a projects subdirectory. 2013-06-24 07:21:35 +00:00
runtime Remove "-Wl,-seg1addr -Wl,0xE0000000" from link options. 2013-06-04 15:26:37 +00:00
test Reapply 184685 after the SetVector iteration order fix. 2013-06-24 12:09:15 +00:00
tools Create the file with the right permissions instead of setting it afterwards. 2013-06-22 02:34:24 +00:00
unittests [APFloat] Removed trailing whitespace from unittests. 2013-06-24 09:58:09 +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
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
Makefile
Makefile.common
Makefile.config.in
Makefile.rules Remove redundant rpath. 2013-05-23 02:53:22 +00:00
README.txt

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.