aboutsummaryrefslogtreecommitdiff
path: root/lib/AsmParser
AgeCommit message (Collapse)Author
2009-01-02Remove comma at end of enumerator list.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61585 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-02Remove bison specific Makefile bits for AsmParser.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61584 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-02Fix a really horrible typo, which caused undefined behavior.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61566 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-02minor cleanups and comment improvements.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61564 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-02add a #include to hopefully get the x86-64-linux buildbot building.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61563 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-02update the cmakefile. This is a "best guess", I haven't tested this.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61561 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-02Reimplement the old and horrible bison parser for .ll files with a niceChris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61558 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-19Update the .cvs files for nocapture.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61241 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-19Commit missed files from nocapture change.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61240 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-17Forgot to revert r61031 when I reverted r61019, r61030, and r61040.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61150 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-16Temporarily revert r61019, r61030, and r61040. These were breaking LLVM ReleaseBill Wendling
builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61094 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-15Update generated files after nocapture syntax change.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61031 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-15It turns out that "align 1" and unaligned are different. Add a bias to theNick Lewycky
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61030 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-15Introducing nocapture, a parameter attribute for pointers to indicate that theNick Lewycky
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61019 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-24Extend the 'noalias' attribute to function return values. This is intended toNick Lewycky
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59934 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13RegeneratedBill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59204 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-13Implement stack protectors as function attributes: "ssp" and "sspreq".Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59202 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-04regenerateNuno Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58697 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-04fix leakage of APFloats in getExistingVal()Nuno Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58696 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-04regenerateNuno Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58694 91177308-0d34-0410-b5e6-96231b3b80d8
2008-11-04fix leakage of APSInt in getVal()Nuno Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58693 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-25CMake: Cross-platform support for using pre-generated llvmAsmParser.cpp and ↵Oscar Fuentes
llvmAsmParser.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58130 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-24Modify the cmake build system so that if it doesn't find bison, it will use ↵Cedric Venet
the pregenerated file in from the svn (.cvs). Work only for windows for the moment. Tested on Vista64 with MSVC2008express. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58090 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-15regenerateNuno Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57577 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-15fix memleak in GetForwardRefForGlobal()Nuno Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57576 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-15regenerateNuno Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57575 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-15fix memleak in getTypeVal()Nuno Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57574 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-15regenerateNuno Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57573 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-15fix memleak in ResolveTypeTo()Nuno Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57572 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-15regenerateChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57561 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-15Fix the .ll grammar rules to allow any type before an 'i32', not just anChris Lattner
integer type. Invalid things like 'float 42' are now rejected by the semantic analysis in the productions not the parser. This fixes PR2733. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57560 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-15regenerateChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57559 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-15Eliminate the "IntType ::= INTTYPE" production, just use Chris Lattner
INTTYPE everywhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57558 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-09Generated files for previous checkin.Dale Johannesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57331 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-09Add a "loses information" return value to APFloat::convertDale Johannesen
and APFloat::convertToInteger. Restore return value to IEEE754. Adjust all users accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57329 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-08regenerateChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57290 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-08Add missing semicolumns in parser rules, those missing semicolumns Chris Lattner
are required to compile with the latest Bison. Patch by Samuel Tardieu! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57289 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-05regenerateNuno Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57114 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-05clean ArgTypeListI production: free the PATypeHolderNuno Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57113 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03regenerateNuno Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57009 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03fix more memleaks in ResolveTypeTo() and ParseGlobalVariable()Nuno Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57008 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03regenerate with bison 2.3Nuno Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57007 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03fix memleak in FunctionHeaderHNuno Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57005 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-29Support inreg, zext and sext as return value attributes.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56801 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-26Implement function notes as function attributes. Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56716 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-26Generated files for warning fix.Dale Johannesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56715 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-26Fix a compiler warning.Dale Johannesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56714 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-26Now Attributes are divided in three groupsDevang Patel
- return attributes - inreg, zext and sext - parameter attributes - function attributes - nounwind, readonly, readnone, noreturn Return attributes use 0 as the index. Function attributes use ~0U as the index. This patch requires corresponding changes in llvm-gcc and clang. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56704 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-26Generated files for previous patch.Dale Johannesen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56679 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-26Add "inreg" field to CallSDNode (doesn't increaseDale Johannesen
its size). Adjust various lowering functions to pass this info through from CallInst. Use it to implement sseregparm returns on X86. Remove X86_ssecall calling convention. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56677 91177308-0d34-0410-b5e6-96231b3b80d8