Go to file
Daniel Sanders 1c5542aa9d [TableGen] Add "InitValue": Handle operands with set bit values in decoder methods
Summary:
The problem:
  When an operand had bits explicitly set to "1" (as in the InitValue.td test case attached), the decoder was ignoring those bits, and the DecoderMethod was receiving an input where the bits were still zero.

The solution:
  We added an "InitValue" variable that stores the initial value of the operand based on what bits were explicitly initialized to 1 in TableGen code. The generated decoder code then uses that initial value to initialize the "tmp" variable, then calls fieldFromInstruction to read the values for the remaining bits that were left unknown in TableGen.

This is mainly useful when there are variations of an instruction that differ based on what bits are set in the operands, since this change makes it possible to access those bits in a DecoderMethod. The DecoderMethod can use those bits to know how to handle the input.

Patch by Nicolas Guillemot

Reviewers: craig.topper, dsanders, fhahn

Reviewed By: dsanders

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D63741

llvm-svn: 368458
2019-08-09 17:30:33 +00:00
clang Rename PCH/leakfiles test so it runs on bots. 2019-08-09 17:13:56 +00:00
clang-tools-extra [clangd] Added highlighting for constructor initializers. 2019-08-09 12:19:10 +00:00
compiler-rt [compiler-rt] FuzzedDataProvider: use C++ headers only instead of a C/C++ mix. 2019-08-09 16:00:53 +00:00
debuginfo-tests Make nrvo-string test more robust. 2019-06-27 20:38:37 +00:00
libclc Revert "Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC" 2019-08-05 17:23:23 +00:00
libcxx [libc++] Fix environment variable passing in libc++'s `SSHExecutor` `lit` utility 2019-08-08 17:33:35 +00:00
libcxxabi [libc++abi] Fix tests when pstl is enabled 2019-08-08 12:43:20 +00:00
libunwind [runtimes] Don't depend on libpthread on Android 2019-07-22 20:41:03 +00:00
lld [ELF] For VS-style diagnostics, prefer printing full paths in the header. 2019-08-09 08:29:03 +00:00
lldb [lldb][NFC] Assert on invalid cursors positions when creating CompletionRequest 2019-08-09 14:32:50 +00:00
llgo IR: Support parsing numeric block ids, and emit them in textual output. 2019-03-22 18:27:13 +00:00
llvm [TableGen] Add "InitValue": Handle operands with set bit values in decoder methods 2019-08-09 17:30:33 +00:00
openmp [OpenMP][libomptarget] Add support for unified memory for regular maps 2019-08-07 17:29:45 +00:00
parallel-libs Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00
polly [NFC][ScopBuilder] Move buildDomains and its callees to ScopBuilder. 2019-08-06 21:51:18 +00:00
pstl [NFC][pstl] Run clang-format 2019-08-08 17:10:45 +00:00
.arcconfig Update monorepo .arcconfig with new project callsign. 2019-01-31 14:34:59 +00:00
.clang-format Add .clang-tidy and .clang-format files to the toplevel of the 2019-01-29 16:43:16 +00:00
.clang-tidy Disable tidy checks with too many hits 2019-02-01 11:20:13 +00:00
.gitignore Change /build to /build* in top-level .gitignore. 2019-08-02 02:14:08 +00:00
README.md

README.md

The LLVM Compiler Infrastructure

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.