Go to file
Nicolai Haehnle 8ebf7e4dfa TableGen: Reimplement !foreach using the resolving mechanism
Summary:
This changes the syntax of !foreach so that the first "parameter" is
a new syntactic variable: !foreach(x, lst, expr) will define the
variable x within the scope of expr, and evaluation of the !foreach
will substitute elements of the given list (or dag) for x in expr.

Aside from leading to a nicer syntax, this allows more complex
expressions where x is deeply nested, or even constant expressions
in which x does not occur at all.

!foreach is currently not actually used anywhere in trunk, but I
plan to use it in the AMDGPU backend. If out-of-tree targets are
using it, they can adjust to the new syntax very easily.

Change-Id: Ib966694d8ab6542279d6bc358b6f4d767945a805

Reviewers: arsenm, craig.topper, tra, MartinO

Subscribers: wdng, llvm-commits, tpr

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

llvm-svn: 326705
2018-03-05 15:21:04 +00:00
clang [x86][CET] Introduce _get_ssp, _inc_ssp intrinsics 2018-03-05 11:30:28 +00:00
clang-tools-extra Adds a clang-tidy test for a failing assertion in the misc-misplaced-const check. 2018-03-02 19:14:34 +00:00
compiler-rt Remove more references to ptrace_pt_{g,s}et_sigmask 2018-03-03 18:41:38 +00:00
debuginfo-tests [Darwin] Specify DWARF 2/4 when running apple accelerator tests. 2018-02-26 20:56:45 +00:00
libclc utils: Adapt to llvm r325155 2018-02-23 07:37:03 +00:00
libcxx Added P0805 to the list of ready bits 2018-03-01 21:16:07 +00:00
libcxxabi [demangler] Support for exception specifications on function types. 2018-02-14 01:08:20 +00:00
libunwind [libunwind][MIPS]: Add support for unwinding in N32 processes. 2018-02-27 21:24:02 +00:00
lld [WebAssembly] Reorder reloc sections to come after symtab 2018-03-05 12:33:58 +00:00
lldb [test] Add dotest wrapper 2018-03-05 10:03:44 +00:00
llgo irgen: Create functions instead of global variables for builtin hash and equal algorithms. 2017-06-04 22:11:28 +00:00
llvm TableGen: Reimplement !foreach using the resolving mechanism 2018-03-05 15:21:04 +00:00
openmp [OMPT] Fix interoperability test with GCC 2018-03-01 14:03:18 +00:00
parallel-libs [Axccel] Remove -Wno-missing-braces in build 2016-12-19 21:34:07 +00:00
polly [Polly][CMake] Fix lit setup for building the in the mono repo 2018-03-05 14:43:04 +00:00
README.md Add an svn project to contain the files that appear at the root of the 2017-10-19 21:09:49 +00:00

README.md

Low Level Virtual Machine (LLVM)

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