LLVM backend for 6502
Go to file
Hal Finkel eda8f6708d PPC: Optimize rldicl generation for masked shifts
Masking operations (where only some number of the low bits are being kept) are
selected to rldicl(x, 0, mb). If x is a logical right shift (which would become
rldicl(y, 64-n, n)), we might be able to fold the two instructions together:

  rldicl(rldicl(x, 64-n, n), 0, mb) -> rldicl(x, 64-n, mb) for n <= mb

The right shift is really a left rotate followed by a mask, and if the explicit
mask is a more-restrictive sub-mask of the mask implied by the shift, only one
rldicl is needed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195185 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-20 01:10:15 +00:00
autoconf
bindings
cmake
docs Support multiple COFF sections with the same name but different COMDAT. 2013-11-19 19:52:52 +00:00
examples [weak vtables] Place class definitions into anonymous namespaces to prevent weak vtables. 2013-11-19 03:08:35 +00:00
include Remove capability for polymorphic destruction from LexicalScope 2013-11-20 00:54:28 +00:00
lib PPC: Optimize rldicl generation for masked shifts 2013-11-20 01:10:15 +00:00
projects
test PPC: Optimize rldicl generation for masked shifts 2013-11-20 01:10:15 +00:00
tools [weak vtables] Place class definitions into anonymous namespaces to prevent weak vtables. 2013-11-19 03:08:35 +00:00
unittests YAML I/O - Added default trait support for std:string. Making another attempt at this, this time doing a clean build on Linux, and running the LLVM, clang, and extra tests, to try to make sure there's no problems. 2013-11-19 17:28:21 +00:00
utils Add lld to projects to tag. 2013-11-19 04:58:46 +00:00
.arcconfig
.clang-format
.gitignore
CMakeLists.txt
CODE_OWNERS.TXT
configure
CREDITS.TXT
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in
Makefile.rules
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.