LLVM backend for 6502
Go to file
Arnold Schwaighofer a4b8b4ccc9 LoopVectorize: Scalarize padded types
This patch disables memory-instruction vectorization for types that need padding
bytes, e.g., x86_fp80 has 10 bytes store size with 6 bytes padding in darwin on
x86_64. Because the load/store vectorization is performed by the bit casting to
a packed vector, which has incompatible memory layout due to the lack of padding
bytes, the present vectorizer produces inconsistent result for memory
instructions of those types.
This patch checks an equality of the AllocSize of a scalar type and allocated
size for each vector element, to ensure that there is no padding bytes and the
array can be read/written using vector operations.

Patch by Daisuke Takahashi!

Fixes PR15758.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180196 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-24 16:16:01 +00:00
autoconf Add basic zlib support to LLVM. This would allow to use compression/uncompression in selected LLVM tools. 2013-04-23 08:28:39 +00:00
bindings [python] Add markup option to disassembler 2012-12-01 21:57:30 +00:00
cmake Use zlib to uncompress debug sections in DWARF parser. 2013-04-23 10:17:34 +00:00
docs Add basic zlib support to LLVM. This would allow to use compression/uncompression in selected LLVM tools. 2013-04-23 08:28:39 +00:00
examples Update links to "Itanium C++ ABI: Exception Handling" document 2013-01-13 15:53:09 +00:00
include MI Sched: eliminate local vreg copies. 2013-04-24 15:54:43 +00:00
lib LoopVectorize: Scalarize padded types 2013-04-24 16:16:01 +00:00
projects remove cbe backend from sample configure 2013-04-24 02:17:19 +00:00
runtime Remove GCDAProfiling.c. This copy is old, the copy in compiler-rt is newer and 2013-03-07 02:03:08 +00:00
test LoopVectorize: Scalarize padded types 2013-04-24 16:16:01 +00:00
tools Fix typo. 2013-04-23 19:39:34 +00:00
unittests Fixing cmake build for MCJIT unit tests 2013-04-23 21:46:56 +00:00
utils Machine model: Generate table entries for super-resources. 2013-04-23 23:45:16 +00:00
.arcconfig Add .arcconfig to the repository. Useful if someone wants to use phabricator's command line tool. 2012-12-01 12:07:58 +00:00
.gitignore Add extra vim swap file pattern 2012-10-09 23:48:34 +00:00
CMakeLists.txt Add basic zlib support to LLVM. This would allow to use compression/uncompression in selected LLVM tools. 2013-04-23 08:28:39 +00:00
CODE_OWNERS.TXT Fix random typo. 2013-04-17 03:18:49 +00:00
configure Add basic zlib support to LLVM. This would allow to use compression/uncompression in selected LLVM tools. 2013-04-23 08:28:39 +00:00
CREDITS.TXT Add myself in the CREDITS.TXT 2013-04-11 13:15:39 +00:00
LICENSE.TXT Add LICENSE.TXT covering contributions made by ARM. 2013-01-07 10:04:49 +00:00
llvm.spec.in Tidy up. s/Low Level Virtual Machine/LLVM/. 2012-01-25 22:00:23 +00:00
LLVMBuild.txt LLVMBuild: Introduce a common section which currently has a list of the 2011-12-12 22:45:54 +00:00
Makefile Improved svn repo searching for 'make update' 2013-01-28 03:19:57 +00:00
Makefile.common Makefile.common: Update a description, s/Source/SOURCES/ , according to MakefileGuide.html#control-variables . 2012-12-07 01:43:23 +00:00
Makefile.config.in Add basic zlib support to LLVM. This would allow to use compression/uncompression in selected LLVM tools. 2013-04-23 08:28:39 +00:00
Makefile.rules Make check depend on all. 2013-04-09 19:42:12 +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.