llvm-project/llvm/lib
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
..
Analysis Improve comment. Thanks for Andrew for the suggestion. 2012-02-22 03:44:46 +00:00
Archive Avoid using an invalidated iterator. 2012-01-23 05:07:16 +00:00
AsmParser Convert assert(0) to llvm_unreachable 2012-02-07 05:05:23 +00:00
Bitcode Enable streaming of bitcode 2012-02-06 22:30:29 +00:00
CodeGen Only add DW_AT_prototyped if we're working with a C-like language. 2012-02-22 08:46:21 +00:00
DebugInfo More dead code removal (using -Wunreachable-code) 2012-01-20 21:51:11 +00:00
ExecutionEngine Remove dead code. Improve llvm_unreachable text. Simplify some control flow. 2012-02-19 11:37:01 +00:00
Linker Capitalize messages so that they appear nicely with the linker's error messages. 2012-02-14 09:13:54 +00:00
MC Switch the llvm::Triple class to immediately parse the triple string on 2012-02-21 03:39:36 +00:00
Object Remove static ctor. 2012-02-22 13:42:11 +00:00
Support Support was removed from LLVM's MIPS backend for the PSP variant of that 2012-02-22 11:32:54 +00:00
TableGen Add Foreach Loop 2012-02-22 16:09:41 +00:00
Target Declare register classes as const. Fix a couple pointers to register classes that weren't already const. 2012-02-22 07:28:11 +00:00
Transforms Use the target-aware constant folder on expressions to improve the chance 2012-02-21 22:08:06 +00:00
VMCore Revert r151049 cos it broke the buildbots. 2012-02-21 11:44:46 +00:00
CMakeLists.txt Move TableGen's parser and entry point into a library 2011-10-01 16:41:13 +00:00
LLVMBuild.txt LLVMBuild: Introduce a common section which currently has a list of the 2011-12-12 22:45:54 +00:00
Makefile Remove more of llvmc and dependencies. 2011-09-20 00:34:27 +00:00