summaryrefslogtreecommitdiffstats
path: root/llvm/lib/AsmParser
Commit message (Collapse)AuthorAgeFilesLines
...
* reject PR3281:crash11.ll with:Chris Lattner2009-01-051-2/+8
| | | | | | | | llvm-as: crash11.ll:2:27: function may not return return opaque type "xw" = tail call opaque @608(label %31) ^ llvm-svn: 61722
* reject PR3281:crash10.ll with:Chris Lattner2009-01-051-0/+5
| | | | | | | llvm-as: crash10.ll:3:35: floating point constant does not have type 'ppc_fp128' "dumy" = fcmp ult ppc_fp128 "j",9209.4 ^ llvm-svn: 61721
* reject PR3281:crash09.ll with this diagnostic:Chris Lattner2009-01-051-0/+6
| | | | | | | | llvm-as: crash09.ll:3:1: self referential type is invalid type %0 ^ llvm-svn: 61720
* allow opaque undefs. This resolves PR3282 and fixesChris Lattner2009-01-051-1/+2
| | | | | | test/Assembler/2005-05-05-OpaqueUndefValues.ll llvm-svn: 61719
* Tidy up #includes, deleting a bunch of unnecessary #includes.Dan Gohman2009-01-051-2/+0
| | | | llvm-svn: 61715
* produce the same diagnostics for vicmp constant exprs as vicmp instructions.Chris Lattner2009-01-051-1/+7
| | | | llvm-svn: 61685
* Fix PR3281:crash08.ll with this diagnostic:Chris Lattner2009-01-052-10/+25
| | | | | | | | llvm-as: crash08.ll:3:15: invalid operand type for instruction "qp" = sdiv fp128 0x1, %30 ^ llvm-svn: 61684
* reject PR3281:crash07.ll with:Chris Lattner2009-01-052-6/+10
| | | | | | | llvm-as: crash07.ll:2:32: va_arg requires operand with first class type %y = va_arg [52 x <{}>] %43, double (...) sspreq ^ llvm-svn: 61683
* reject undef/zero labels. This fixes PR3281:crash0[56].ll with theseChris Lattner2009-01-051-1/+5
| | | | | | | | | | | | diagnostics: llvm-as: crash05.ll:1:14: invalid type for null constant global label zeroinitializer addrspace (75), section "c" ^ llvm-as: crash06.ll:2:14: invalid type for null constant udiv label zeroinitializer, @0 ^ llvm-svn: 61681
* add checking intentionally elided for vfcmp/vicmp since they should reallyChris Lattner2009-01-051-0/+4
| | | | | | | | | just be removed. However, this fixes PR3281:crash04.ll, diagnosing it with: lvm-as: crash04.ll:2:13: vfcmp requires vector floating point operands vfcmp uno double* undef, undef ^ llvm-svn: 61680
* diagnose PR3281:crash02.ll with:Chris Lattner2009-01-051-0/+3
| | | | | | | | llvm-as: crash02.ll:1:62: invalid function return type declare { <{ <{}>, void ([1898 x { void ()* }], opaque, ...) (), fp128 * }>, opaque } @t () ^ llvm-svn: 61679
* reject PR3281:crash01.ll with:Chris Lattner2009-01-051-1/+2
| | | | | | | | llvm-as: crash01.ll:1:9: invalid function return type declare opaque @t() ^ llvm-svn: 61678
* fix PR3281:accepted0[02].ll: represent empty arrays distinctly, andChris Lattner2009-01-051-1/+7
| | | | | | | | | | | | | | diagnose attempts to initialize non-empty arrays with them. This produces: llvm-as: accepted02.ll:1:28: invalid empty array initializer @"o" = global [5 x double] [] ^ llvm-as: accepted00.ll:1:32: invalid empty array initializer @"za" = thread_local global {} [] ^ [ llvm-svn: 61676
* PR3281:crash00.ll: produce this diagnostic instead of crashing:Chris Lattner2009-01-051-1/+5
| | | | | | | @t = global i8 0, align 3 ^ llvm-svn: 61675
* Refactor some parser interfaces to fix PR3278 and a FIXME:Chris Lattner2009-01-043-23/+25
| | | | | | | ParseAssemblyString with a specified module would not parse into the module, it would create and return a new one. llvm-svn: 61635
* Alphabetized #includes.Misha Brukman2009-01-022-4/+3
| | | | llvm-svn: 61595
* Down with trailing whitespace!Misha Brukman2009-01-025-67/+66
| | | | llvm-svn: 61594
* Remove comma at end of enumerator list.Daniel Dunbar2009-01-021-1/+1
| | | | llvm-svn: 61585
* Remove bison specific Makefile bits for AsmParser.Daniel Dunbar2009-01-021-12/+0
| | | | llvm-svn: 61584
* Fix a really horrible typo, which caused undefined behavior.Chris Lattner2009-01-021-1/+1
| | | | llvm-svn: 61566
* minor cleanups and comment improvements.Chris Lattner2009-01-022-196/+149
| | | | llvm-svn: 61564
* add a #include to hopefully get the x86-64-linux buildbot building.Chris Lattner2009-01-021-0/+1
| | | | llvm-svn: 61563
* update the cmakefile. This is a "best guess", I haven't tested this.Chris Lattner2009-01-021-28/+2
| | | | llvm-svn: 61561
* Reimplement the old and horrible bison parser for .ll files with a niceChris Lattner2009-01-0211-15731/+3904
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and clean recursive descent parser. This change has a couple of ramifications: 1. The parser code is about 400 lines shorter (in what we maintain, not including what is autogenerated). 2. The code should be significantly faster than the old code because we don't have to work around bison's poor handling of datatypes with ctors/dtors. This also makes the code much more resistant to memory leaks. 3. We now get caret diagnostics from the .ll parser, woo. 4. The actual diagnostics emited from the parser are completely different so a bunch of testcases had to be updated. 5. I now disallow "%ty = type opaque %ty = type i32". There was no good reason to support this, it was just an accident of the old implementation. I have no reason to think that anyone is actually using this. 6. The syntax for sticking a global variable has changed to make it unambiguous. I don't think anyone is depending on this since only clang supports this and it is not solid yet, so I'm not worried about anything breaking. 7. This gets rid of the last use of bison, and along with it the .cvs files. I'll prune this from the makefiles as a subsequent commit. There are a few minor cleanups that can be done after this commit (suggestions welcome!) but this passes dejagnu testing and is ready for its time in the limelight. llvm-svn: 61558
* Update the .cvs files for nocapture.Nick Lewycky2008-12-193-1343/+1355
| | | | llvm-svn: 61241
* Commit missed files from nocapture change.Nick Lewycky2008-12-192-11/+19
| | | | llvm-svn: 61240
* Forgot to revert r61031 when I reverted r61019, r61030, and r61040.Bill Wendling2008-12-173-1355/+1343
| | | | llvm-svn: 61150
* Temporarily revert r61019, r61030, and r61040. These were breaking LLVM ReleaseBill Wendling2008-12-162-19/+11
| | | | | | builds. llvm-svn: 61094
* Update generated files after nocapture syntax change.Nick Lewycky2008-12-153-1343/+1355
| | | | llvm-svn: 61031
* It turns out that "align 1" and unaligned are different. Add a bias to theNick Lewycky2008-12-151-0/+6
| | | | | | | | | | alignment attribute such that 0 means unaligned. This will probably require a rebuild of llvm-gcc because of the change to Attributes.h. If you see many test failures on "make check", please rebuild your llvm-gcc. llvm-svn: 61030
* Introducing nocapture, a parameter attribute for pointers to indicate that theNick Lewycky2008-12-152-11/+13
| | | | | | | | | | | | | | | | | | | | | | | callee will not introduce any new aliases of that pointer. The attributes had all bits allocated already, so I decided to collapse alignment. Alignment was previously stored as a 16-bit integer from bits 16 to 32 of the attribute, but it was required to be a power of 2. Now it's stored in log2 encoded form in five bits from 16 to 21. That gives us 11 more bits of space. You may have already noticed that you only need four bits to encode a 16-bit power of two, so why five bits? Because the AsmParser accepted 32-bit alignments, even though we couldn't store them (they were silently discarded). Now we can store them in memory, but not in the bitcode. The bitcode format was already storing these as 64-bit VBR integers. So, the bitcode format stays the same, keeping the alignment values stored as 16 bit raw values. There's some hideous code in the reader and writer that deals with this, waiting to be ripped out the moment we run out of bits again and have to replace the parameter attributes table encoding. llvm-svn: 61019
* Extend the 'noalias' attribute to function return values. This is intended toNick Lewycky2008-11-242-1343/+1352
| | | | | | | | | indicate functions that allocate, such as operator new, or list::insert. The actual definition is slightly less strict (for now). No changes to the bitcode reader/writer, asm printer or verifier were needed. llvm-svn: 59934
* RegeneratedBill Wendling2008-11-133-1397/+1433
| | | | llvm-svn: 59204
* Implement stack protectors as function attributes: "ssp" and "sspreq".Bill Wendling2008-11-132-2/+6
| | | | llvm-svn: 59202
* regenerateNuno Lopes2008-11-043-339/+347
| | | | llvm-svn: 58697
* fix leakage of APFloats in getExistingVal()Nuno Lopes2008-11-042-1/+7
| | | | llvm-svn: 58696
* regenerateNuno Lopes2008-11-043-337/+339
| | | | llvm-svn: 58694
* fix leakage of APSInt in getVal()Nuno Lopes2008-11-041-0/+1
| | | | llvm-svn: 58693
* CMake: Cross-platform support for using pre-generated llvmAsmParser.cpp and ↵Oscar Fuentes2008-10-251-25/+18
| | | | | | llvmAsmParser.h. llvm-svn: 58130
* Modify the cmake build system so that if it doesn't find bison, it will use ↵Cedric Venet2008-10-241-1/+25
| | | | | | the pregenerated file in from the svn (.cvs). Work only for windows for the moment. Tested on Vista64 with MSVC2008express. llvm-svn: 58090
* regenerateNuno Lopes2008-10-153-337/+339
| | | | llvm-svn: 57577
* fix memleak in GetForwardRefForGlobal()Nuno Lopes2008-10-151-0/+1
| | | | llvm-svn: 57576
* regenerateNuno Lopes2008-10-153-339/+343
| | | | llvm-svn: 57575
* fix memleak in getTypeVal()Nuno Lopes2008-10-151-1/+3
| | | | llvm-svn: 57574
* regenerateNuno Lopes2008-10-153-342/+344
| | | | llvm-svn: 57573
* fix memleak in ResolveTypeTo()Nuno Lopes2008-10-151-0/+1
| | | | llvm-svn: 57572
* regenerateChris Lattner2008-10-152-1483/+1521
| | | | llvm-svn: 57561
* Fix the .ll grammar rules to allow any type before an 'i32', not just anChris Lattner2008-10-151-32/+49
| | | | | | | integer type. Invalid things like 'float 42' are now rejected by the semantic analysis in the productions not the parser. This fixes PR2733. llvm-svn: 57560
* regenerateChris Lattner2008-10-153-1467/+1446
| | | | llvm-svn: 57559
* Eliminate the "IntType ::= INTTYPE" production, just use Chris Lattner2008-10-151-10/+9
| | | | | | INTTYPE everywhere. llvm-svn: 57558
OpenPOWER on IntegriCloud