llvm-capstone/llvm
David Greene fb927af24f Add Foreach Loop
Add some data structures to represent for loops.  These will be
referenced during object processing to do any needed iteration and
instantiation.

Add foreach keyword support to the lexer.

Add a mode to indicate that we're parsing a foreach loop.  This allows
the value parser to early-out when processing the foreach value list.

Add a routine to parse foreach iteration declarations.  This is
separate from ParseDeclaration because the type of the named value
(the iterator) doesn't match the type of the initializer value (the
value list).  It also needs to add two values to the foreach record:
the iterator and the value list.

Add parsing support for foreach.

Add the code to process foreach loops and create defs based
on iterator values.

Allow foreach loops to be matched at the top level.

When parsing an IDValue check if it is a foreach loop iterator for one
of the active loops.  If so, return a VarInit for it.

Add Emacs keyword support for foreach.

Add VIM keyword support for foreach.

Add tests to check foreach operation.

Add TableGen documentation for foreach.

Support foreach with multiple objects.

Support non-braced foreach body with one object.

Do not require types for the foreach declaration.  Assume the iterator
type from the iteration list element type.

llvm-svn: 151164
2012-02-22 16:09:41 +00:00
..
autoconf autoconf/m4/visibility_inlines_hidden.m4: Tweak for cygwin-g++-4.5.3. It folded conftest regardress of attributge((noinline)) with >=O1 . 2012-02-19 12:05:12 +00:00
bindings ocaml bindings: landing pad is now the last opcode. 2012-02-07 18:58:19 +00:00
cmake add LLVM_VERSION_MAJOR and _MINOR defines 2012-02-13 18:48:10 +00:00
docs Add Foreach Loop 2012-02-22 16:09:41 +00:00
examples Switch to a more idiomatic way of silencing unused variable warnings in 2012-02-20 00:02:49 +00:00
include Add Foreach Loop 2012-02-22 16:09:41 +00:00
lib Add Foreach Loop 2012-02-22 16:09:41 +00:00
projects Replace the old --with-cxx-* configure options with a single --with-gcc-toolchain 2012-02-03 00:59:30 +00:00
runtime Fixing a warning in MSVC (this is also a test commit) 2012-02-05 19:43:39 +00:00
test Add Foreach Loop 2012-02-22 16:09:41 +00:00
tools Improve handling of blockaddresses in bugpoint when splitting a module. Patch by Daniel Reynaud. 2012-02-22 01:43:47 +00:00
unittests Fix typos. 2012-02-22 16:01:54 +00:00
utils Add Foreach Loop 2012-02-22 16:09:41 +00:00
.gitignore
CMakeLists.txt add LLVM_VERSION_MAJOR and _MINOR defines 2012-02-13 18:48:10 +00:00
configure autoconf/m4/visibility_inlines_hidden.m4: Tweak for cygwin-g++-4.5.3. It folded conftest regardress of attributge((noinline)) with >=O1 . 2012-02-19 12:05:12 +00:00
CREDITS.TXT Update credits. 2012-02-16 18:54:41 +00:00
LICENSE.TXT
llvm.spec.in Tidy up. s/Low Level Virtual Machine/LLVM/. 2012-01-25 22:00:23 +00:00
LLVMBuild.txt
Makefile Makefile: add missing files to FilesToConfig 2012-01-17 02:56:49 +00:00
Makefile.common
Makefile.config.in
Makefile.rules On Cygwin/MingW, add SharedLibDir and LLVMToolDir to the library search path, since shared libraries are placed in 'bin'. (static libraries are still in 'lib'). 2012-02-18 10:03:19 +00:00
README.txt test commit 2012-02-07 08:18:05 +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 HTML documentation provided in docs/index.html for further
assistance with LLVM.

If you're writing a package for LLVM, see docs/Packaging.html for our
suggestions.