summaryrefslogtreecommitdiffstats
path: root/llvm/lib/AsmParser/LLParser.h
Commit message (Collapse)AuthorAgeFilesLines
...
* add facilities to start factoring instruction metadata parsingChris Lattner2009-12-301-4/+6
| | | | | | out of each opcode's handler. Change ret over so far. llvm-svn: 92298
* reimplement insertvalue/extractvalue metadata handling to not blindly Chris Lattner2009-12-301-1/+8
| | | | | | accept invalid input. Actually add a testcase. llvm-svn: 92297
* rename MetadataCache -> NumberedMetadata to follow the conventionChris Lattner2009-12-301-2/+1
| | | | | | | used by other things. Convert it to a vector since it is a dense numbering. llvm-svn: 92293
* rewrite ParseMDNodeVector to follow the normal patter used in the .ll parser.Chris Lattner2009-12-301-0/+2
| | | | llvm-svn: 92292
* rename ParseMDNode -> ParseMDNodeID, since it parses !42, not !{... } as ↵Chris Lattner2009-12-301-1/+1
| | | | | | you'd expect. llvm-svn: 92291
* remove the code added in r90497. It has several major issues and no tests.Chris Lattner2009-12-301-2/+0
| | | | llvm-svn: 92288
* split t_Metadata into t_MDNode and t_MDString, eliminating some unsafe casting.Chris Lattner2009-12-301-2/+4
| | | | llvm-svn: 92287
* change ParseMDString and ParseMDNode to take arguments of the right type.Chris Lattner2009-12-291-2/+2
| | | | | | | This exposed a raft of other problems, which I'll deal with in subsequent patches. llvm-svn: 92273
* switch to TrackingVH instead of WeakVH, since these can neverChris Lattner2009-12-291-3/+3
| | | | | | | be RAUW'd and go to null. This also gets us some sorely lacking type safety. llvm-svn: 92272
* Metadata.h doesn't need to include ValueHandle.h anymore.Chris Lattner2009-12-281-0/+1
| | | | llvm-svn: 92211
* Add ParseInlineMetadata() which can parses metadata that refers to an ↵Victor Hernandez2009-12-031-1/+3
| | | | | | instruction. Extend ParseParameterList() to use this new function so that calls to llvm.dbg.declare can pass inline metadata llvm-svn: 90497
* Use WeakVH while storing metadata in containers.Devang Patel2009-11-051-2/+2
| | | | | | This fixes PR5393. llvm-svn: 86091
* full asmparser support for blockaddress. We can now do:Chris Lattner2009-10-281-4/+51
| | | | | | | | | $ llvm-as foo.ll -d -disable-output which reads and prints the .ll file. BC encoding is the next project. Testcase will go in once that works. llvm-svn: 85368
* rename indbr -> indirectbr to appease the residents of #llvm.Chris Lattner2009-10-281-1/+1
| | | | llvm-svn: 85351
* add enough support for indirect branch for the feature test to passChris Lattner2009-10-271-1/+8
| | | | | | | (assembler,asmprinter, bc reader+writer) and document it. Codegen currently aborts on it. llvm-svn: 85274
* Auto-upgrade free instructions to calls to the builtin free function.Victor Hernandez2009-10-241-1/+1
| | | | | | | Update all analysis passes and transforms to treat free calls just like FreeInst. Remove RaiseAllocations and all its tests since FreeInst no longer needs to be raised. llvm-svn: 84987
* Autoupgrade malloc insts to malloc calls.Victor Hernandez2009-10-171-2/+5
| | | | | | | | Update testcases that rely on malloc insts being present. Also prematurely remove MallocInst handling from IndMemRemoval and RaiseAllocations to help pass tests in this incremental step. llvm-svn: 84292
* Parse custom metadata attached with an instruction.Devang Patel2009-09-291-1/+1
| | | | llvm-svn: 83033
* Do not use global typedef for MDKindID.Devang Patel2009-09-281-1/+1
| | | | llvm-svn: 83016
* Revert 82694 "Auto-upgrade malloc instructions to malloc calls." because it ↵Victor Hernandez2009-09-251-5/+2
| | | | | | causes regressions in the nightly tests. llvm-svn: 82784
* Auto-upgrade malloc instructions to malloc calls.Victor Hernandez2009-09-241-2/+5
| | | | | | Reviewed by Devang Patel. llvm-svn: 82694
* Fix parsing of optional metadata for 'load', 'store' and 'alloc' instructions.Devang Patel2009-09-171-2/+3
| | | | llvm-svn: 82175
* Retype from unsigned to CallingConv::ID accordingly. Approved by Bob Wilson.Sandeep Patel2009-09-021-1/+1
| | | | llvm-svn: 80773
* Extend the AsmWriter to print unnamed numbered types as "%0 = type ..."Dan Gohman2009-08-121-0/+1
| | | | | | | and unnamed numbered global variables as "@0 = global ...". Extend the AsmParser to recognize these forms. llvm-svn: 78859
* Parse named metadata.Devang Patel2009-07-291-0/+1
| | | | llvm-svn: 77410
* Derive MDNode from MetadataBase instead of Constant. Emit MDNodes into ↵Devang Patel2009-07-231-3/+3
| | | | | | METADATA_BLOCK in bitcode file. llvm-svn: 76834
* Introduce MetadataBase, a base class for MDString and MDNode.Devang Patel2009-07-221-1/+2
| | | | | | | Derive MDString directly from MetadataBase. Introduce new bitcode block to hold metadata. llvm-svn: 76759
* Refactor metadata parsing routines into separate functions.Devang Patel2009-07-201-0/+2
| | | | llvm-svn: 76455
* Support MDNode forward reference.Devang Patel2009-07-081-0/+2
| | | | llvm-svn: 75031
* Use LLVMContext in the LLLexer.Owen Anderson2009-07-071-1/+1
| | | | llvm-svn: 74934
* switch the .ll parser to use SourceMgr.Chris Lattner2009-07-021-2/+2
| | | | llvm-svn: 74735
* switch the .ll parser into SMDiagnostic.Chris Lattner2009-07-021-1/+1
| | | | llvm-svn: 74734
* Use LLVMContext for generating UndefValue constants too!Owen Anderson2009-07-021-0/+2
| | | | llvm-svn: 74703
* Try again at converting the LLParser to use LLVMContext, without massive ↵Owen Anderson2009-07-011-2/+4
| | | | | | breakage this time. llvm-svn: 74671
* --- Reverse-merging (from foreign repository) r74648 into '.':Bill Wendling2009-07-011-5/+2
| | | | | | | | | | | U include/llvm/LLVMContext.h U lib/VMCore/LLVMContext.cpp U lib/AsmParser/LLParser.cpp U lib/AsmParser/LLParser.h Temporarily reverting r74648. It was causing massive failures in release mode. llvm-svn: 74653
* Convert LLParser to use LLVMContext for creating constants.Owen Anderson2009-07-011-2/+5
| | | | llvm-svn: 74648
* Support stand alone metadata syntax.Devang Patel2009-07-011-1/+3
| | | | | | | !0 = constant metadata !{i32 21, i32 22} @llvm.blah = constant metadata !{i32 1000, i16 200, metadata !0} llvm-svn: 74630
* Make MDNode use CallbackVH. Also change MDNode to store Value* instead ofNick Lewycky2009-05-101-1/+1
| | | | | | | Constant* in preperation of a future change to support holding non-Constants in an MDNode. llvm-svn: 71407
* Add support for embedded metadata to LLVM. This introduces two new types ofNick Lewycky2009-04-041-0/+3
| | | | | | | | Constant, MDString and MDNode which can only be used by globals with a name that starts with "llvm." or as arguments to a function with the same naming restriction. llvm-svn: 68420
* Fix two classes of bugs. First:Chris Lattner2009-03-091-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | validate an invariant so that the asmparser rejects a bad construct instead of the verifier. Before: llvm-as: assembly parsed, but does not verify as correct! Invalid struct return type! i64 (%struct.Type*, %struct.Type*)* @foo after: llvm-as: t.ll:5:8: functions with 'sret' argument must return void define i64 @foo(%struct.Type* noalias nocapture sret %agg.result, %struct.Type* nocapture byval %t) nounwind { ^ Second, check that void is only used where allowed (in function return types) not in arbitrary places, fixing PR3747 - Crash in llvm-as with void field in struct. We now reject that example with: $ llvm-as t.ll llvm-as: t.ll:1:12: struct element can not have void type %x = type {void} ^ llvm-svn: 66394
* Reject PR3281:accepted03.ll with:Chris Lattner2009-01-051-1/+1
| | | | | | | | llvm-as: accepted03.ll:1:35: invalid unresolved type up reference declare void @r({ \7, opaque, \10 } %su) ^ llvm-svn: 61725
* Fix PR3281:crash08.ll with this diagnostic:Chris Lattner2009-01-051-1/+2
| | | | | | | | 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-051-1/+1
| | | | | | | 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
* Refactor some parser interfaces to fix PR3278 and a FIXME:Chris Lattner2009-01-041-2/+2
| | | | | | | ParseAssemblyString with a specified module would not parse into the module, it would create and return a new one. llvm-svn: 61635
* Down with trailing whitespace!Misha Brukman2009-01-021-30/+30
| | | | llvm-svn: 61594
* minor cleanups and comment improvements.Chris Lattner2009-01-021-3/+9
| | | | llvm-svn: 61564
* Reimplement the old and horrible bison parser for .ll files with a niceChris Lattner2009-01-021-0/+266
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
OpenPOWER on IntegriCloud