- Feb 23, 2012
-
-
Craig Topper authored
llvm-svn: 151246
-
- Feb 22, 2012
-
-
Bill Wendling authored
llvm-svn: 151189
-
David Greene authored
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
-
Craig Topper authored
Declare register classes as const. Fix a couple pointers to register classes that weren't already const. llvm-svn: 151138
-
Craig Topper authored
Make all pointers to TargetRegisterClass const since they are all pointers to static data that should not be modified. llvm-svn: 151134
-
- Feb 21, 2012
-
-
Craig Topper authored
llvm-svn: 151043
-
Craig Topper authored
In generated RegisterInfo files, replace a pointer to the end of an array with just the size of the array to avoid relocations. llvm-svn: 151041
-
Craig Topper authored
Merge some tables in generated RegisterInfo file. Store indices into larger table instead of pointers to reduce relocations and shrink table size on 64-bit builds. Shaves ~24K off X86MCTargetDesc.o. Accidentally commited only part of this in r151038. llvm-svn: 151039
-
- Feb 19, 2012
-
-
Ahmed Charles authored
llvm-svn: 150918
-
Craig Topper authored
llvm-svn: 150899
-
- Feb 18, 2012
-
-
Craig Topper authored
Add X86 assembler and disassembler support for AMD SVM instructions. Original patch by Kay Tiong Khoo. Few tweaks by me for code density and to reduce replication. llvm-svn: 150873
-
- Feb 15, 2012
-
-
Daniel Dunbar authored
llvm-svn: 150610
-
- Feb 11, 2012
-
-
Benjamin Kramer authored
llvm-svn: 150304
-
Benjamin Kramer authored
This requires some gymnastics to make it available for C code. Remove the names from the disassembler tables, making them relocation free. llvm-svn: 150303
-
- Feb 10, 2012
-
-
Benjamin Kramer authored
Put instruction names into an indexed string table on the side, removing a pointer from MCInstrDesc. Make them accessible through MCInstrInfo. They are only used for debugging purposes so this doesn't have an impact on performance. X86MCTargetDesc.o goes from 630K to 461K on x86_64. llvm-svn: 150245
-
- Feb 09, 2012
-
-
Benjamin Kramer authored
Store just the SimpleValueType in the generated VT tables for each register class, eliminating static ctors. llvm-svn: 150173
-
Benjamin Kramer authored
No change on i386. llvm-svn: 150170
-
James Molloy authored
Teach the MC and disassembler about SoftFail, and hook it up to UNPREDICTABLE on ARM. Wire this to tBLX in order to provide test coverage. llvm-svn: 150169
-
Craig Topper authored
llvm-svn: 150167
-
Craig Topper authored
Flatten some of the arrays in the X86 disassembler tables to reduce space needed to store pointers on 64-bit hosts and reduce relocations needed at startup. Part of PR11953. llvm-svn: 150161
-
- Feb 08, 2012
-
-
Benjamin Kramer authored
X86GenRegisterInfo.inc | 1032 ------------------------------------------------- 1 file changed, 1032 deletions(-) llvm-svn: 150080
-
Benjamin Kramer authored
llvm-svn: 150076
-
- Feb 07, 2012
-
-
Andrew Trick authored
1. Added a status note when a config file is loaded directly with load_config. This helps notice loads of lit.cfg from lit.site.cfg 2. Added a status note on the result of a config load. Previously, it was just notifying that it tries to load a config file. Now it will also say whether the load succeeded or the file wasn't found The two changes give better visibility into which config files were actually loaded by lit. The effect is only on --debug runs. Patch by Eli Bendersky! llvm-svn: 149932
-
- Feb 05, 2012
-
-
Craig Topper authored
llvm-svn: 149814
-
- Feb 03, 2012
-
-
Brendon Cahoon authored
When adding the {-1, -1} entry to the DFAStateInputTable, we need to increment the index used to populate the DFAStateEntryTable. Otherwise, the entry table will be off by one for each transition after the {-1, -1} entry. PR11908. llvm-svn: 149713
-
Rafael Espindola authored
that just uses the new toolchain probing logic. This fixes linking with -m32 on 64 bit systems (the /32 dir was not being added to the search). llvm-svn: 149651
-
- Feb 02, 2012
-
-
Jakob Stoklund Olesen authored
It is simpler to define a composite index directly: def ssub_2 : SubRegIndex<[dsub_1, ssub_0]>; def ssub_3 : SubRegIndex<[dsub_1, ssub_1]>; Than specifying the composite indices on each register: CompositeIndices = [(ssub_2 dsub_1, ssub_0), (ssub_3 dsub_1, ssub_1)] in ... This also makes it clear that SubRegIndex composition is supposed to be unique. llvm-svn: 149556
-
- Feb 01, 2012
-
-
Jakob Stoklund Olesen authored
The final tie breaker comparison also needs to return +/-1, or 0. This is not a less() function. This could cause otherwise identical super-classes to be ordered unstably, depending on what the system qsort routine does with a bad compare function. llvm-svn: 149549
-
Jakob Stoklund Olesen authored
It's only by luck that we haven't produced any yet, and clang refuses to compile them. llvm-svn: 149546
-
- Jan 31, 2012
-
-
Jakob Stoklund Olesen authored
It was wrong and completely unused. llvm-svn: 149433
-
Jakob Stoklund Olesen authored
Each SubRegIndex keeps track of how it composes. llvm-svn: 149423
-
Jakob Stoklund Olesen authored
This class is used to represent SubRegIndex instances instead of the raw Record pointers that were used before. No functional change intended. llvm-svn: 149418
-
- Jan 28, 2012
-
-
David Greene authored
Move to a model where we build whatever branches are checked out in the source directories. This was a bit too smart (and complicated) in handling details best left to the user and the revision control system. In addition, get rid of support for llvm-gcc and building gcc as these are no longer necessary. llvm-svn: 149149
-
- Jan 26, 2012
-
-
Eric Christopher authored
Patch by Liang Wang! llvm-svn: 149085
-
- Jan 24, 2012
-
-
Jim Grosbach authored
llvm-svn: 148856
-
Owen Anderson authored
Widen the instruction encoder that TblGen emits to a 64 bits, which should accomodate every target I can think of offhand. llvm-svn: 148833
-
Jakob Stoklund Olesen authored
This will interleave the elements from two or more lists. llvm-svn: 148824
-
- Jan 22, 2012
-
-
David Blaikie authored
Unfortunately I don't think there's a fix for this that will work upstream and also satisfy Clang's -Wunreachable-code, which is a pity. But I'll give it some more thought -perhaps there's some way out. llvm-svn: 148645
-
- Jan 21, 2012
-
-
David Blaikie authored
This will ensure LLVM and Clang build -Wswitch-enum-redundant-default (an on-by-default warning I'm about to add to Clang). llvm-svn: 148639
-
- Jan 20, 2012
-
-
Kostya Serebryany authored
Problem: LLVM needs more function attributes than currently available (32 bits). One such proposed attribute is "address_safety", which shows that a function is being checked for address safety (by AddressSanitizer, SAFECode, etc). Solution: - extend the Attributes from 32 bits to 64-bits - wrap the object into a class so that unsigned is never erroneously used instead - change "unsigned" to "Attributes" throughout the code, including one place in clang. - the class has no "operator uint64 ()", but it has "uint64_t Raw() " to support packing/unpacking. - the class has "safe operator bool()" to support the common idiom: if (Attributes attr = getAttrs()) useAttrs(attr); - The CTOR from uint64_t is marked explicit, so I had to add a few explicit CTOR calls - Add the new attribute "address_safety". Doing it in the same commit to check that attributes beyond first 32 bits actually work. - Some of the functions from the Attribute namespace are worth moving inside the class, but I'd prefer to have it as a separate commit. Tested: "make check" on Linux (32-bit and 64-bit) and Mac (10.6) built/run spec CPU 2006 on Linux with clang -O2. This change will break clang build in lib/CodeGen/CGCall.cpp. The following patch will fix it. llvm-svn: 148553
-