aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/Threading.cpp
diff options
context:
space:
mode:
authorReed Kotler <rkotler@mips.com>2014-06-16 22:05:47 +0000
committerReed Kotler <rkotler@mips.com>2014-06-16 22:05:47 +0000
commit9fe3bfd0879999d50542667fccb0dcc75ec8da90 (patch)
tree65860db30088cde90b8889a2ddeeed029780ec7b /llvm/lib/Support/Threading.cpp
parent79140826bc1225132886d3c9fd912edeab06af94 (diff)
downloadllvm-9fe3bfd0879999d50542667fccb0dcc75ec8da90.zip
llvm-9fe3bfd0879999d50542667fccb0dcc75ec8da90.tar.gz
llvm-9fe3bfd0879999d50542667fccb0dcc75ec8da90.tar.bz2
Add load/store functionality
Summary: This patches allows non conversions like i1=i2; where both are global ints. In addition, arithmetic and other things start to work since fast-isel will use existing patterns for non fast-isel from tablegen files where applicable. In addition i8, i16 will work in this limited context for assignment without the need for sign extension (zero or signed). It does not matter how i8 or i16 are loaded (zero or sign extended) since only the 8 or 16 relevant bits are used and clang will ask for sign extension before using them in arithmetic. This is all made more complete in forthcoming patches. for example: int i, j=1, k=3; void foo() { i = j + k; } Keep in mind that this pass is not enabled right now and is an experimental pass It can only be enabled with a hidden option to llvm of -mips-fast-isel. Test Plan: Run test-suite, loadstore2.ll and I will run some executable tests. Reviewers: dsanders Subscribers: mcrosier Differential Revision: http://reviews.llvm.org/D3856 llvm-svn: 211061
Diffstat (limited to 'llvm/lib/Support/Threading.cpp')
0 files changed, 0 insertions, 0 deletions