summaryrefslogtreecommitdiffstats
path: root/llvm/lib/AsmParser/LLParser.h
Commit message (Collapse)AuthorAgeFilesLines
...
* Land the long talked about "type system rewrite" patch. ThisChris Lattner2011-07-091-44/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | patch brings numerous advantages to LLVM. One way to look at it is through diffstat: 109 files changed, 3005 insertions(+), 5906 deletions(-) Removing almost 3K lines of code is a good thing. Other advantages include: 1. Value::getType() is a simple load that can be CSE'd, not a mutating union-find operation. 2. Types a uniqued and never move once created, defining away PATypeHolder. 3. Structs can be "named" now, and their name is part of the identity that uniques them. This means that the compiler doesn't merge them structurally which makes the IR much less confusing. 4. Now that there is no way to get a cycle in a type graph without a named struct type, "upreferences" go away. 5. Type refinement is completely gone, which should make LTO much MUCH faster in some common cases with C++ code. 6. Types are now generally immutable, so we can use "Type *" instead "const Type *" everywhere. Downsides of this patch are that it removes some functions from the C API, so people using those will have to upgrade to (not yet added) new API. "LLVM 3.0" is the right time to do this. There are still some cleanups pending after this, this patch is large enough as-is. llvm-svn: 134829
* remove asmparser support for the old getresult instruction, which has been ↵Chris Lattner2011-06-171-1/+0
| | | | | | subsumed by extractvalue. llvm-svn: 133247
* remove parser support for the obsolete "multiple return values" syntax, whichChris Lattner2011-06-171-1/+1
| | | | | | was replaced with return of a "first class aggregate". llvm-svn: 133245
* Remove old backwards compatibility support from the parser for autoupgradingChris Lattner2011-06-171-5/+2
| | | | | | | | | | | the old malloc/free instructions, and for 'sext' and 'zext' as function attributes (they are spelled signext/zeroext now), and support for result value attributes being specified after a function. Additionally, diagnose invalid attributes on functions with an error message instead of an abort in the verifier. llvm-svn: 133229
* Reject uses of unnamed_addr in declarations.Rafael Espindola2011-01-131-1/+3
| | | | llvm-svn: 123358
* Push twines deeper into SourceMgr's error handling methods.Benjamin Kramer2010-09-271-2/+2
| | | | llvm-svn: 114847
* remove unions from LLVM IR. They are severely buggy and notChris Lattner2010-08-281-3/+0
| | | | | | being actively maintained, improved, or extended. llvm-svn: 112356
* Add a comment explaining why this code is more complex than itDan Gohman2010-08-241-0/+8
| | | | | | initially seems it should require. llvm-svn: 111913
* Extend function-local metadata to be usable as attachments.Dan Gohman2010-08-241-0/+1
| | | | llvm-svn: 111895
* Give ParseInstructionMetadata access to the PerFunctionState object.Dan Gohman2010-08-241-1/+1
| | | | | | | This is in preparation for generalizing its parsing of function-local values. llvm-svn: 111893
* Factor out metadata parsing into a separate function.Dan Gohman2010-07-141-0/+1
| | | | llvm-svn: 108343
* fix a crash on invalid metadata, e.g.: call i32 @foo(), XXXXChris Lattner2010-04-071-1/+1
| | | | | | | | We would return the error without inserting the new instruction into the program, so it wouldn't get deallocated, and an abort would trigger when the module was deleted. llvm-svn: 100602
* include header.Chris Lattner2010-04-011-0/+1
| | | | llvm-svn: 100087
* rewrite handling of forward ref'd instruction metadata Chris Lattner2010-04-011-0/+9
| | | | | | | | to used deferred resolution instead of creating a temporary node + rauw. There is no reason to create the temporary mdnode, then do rauw, then destroy it. llvm-svn: 100086
* eliminate a temporary smallvectorChris Lattner2010-04-011-2/+1
| | | | llvm-svn: 100082
* Add support for a union type in LLVM IR. Patch by Talin!Chris Lattner2010-02-121-0/+4
| | | | llvm-svn: 96011
* Add a new function attribute, 'alignstack'. It will indicate (when the backendsCharles Davis2010-02-121-0/+1
| | | | | | | implement support for it) that the stack should be forcibly realigned in the prologue (and the process reversed in the epilogue). llvm-svn: 95945
* Remove MetadataBase class because it is not adding significant value.Devang Patel2010-01-221-1/+0
| | | | llvm-svn: 94243
* Consolidate ConvertGlobalValIDToValue, ConvertGlobalOrMetadataValIDToValue, ↵Victor Hernandez2010-01-111-4/+1
| | | | | | and ConvertValIDToValue into a more powerful ConvertValIDToValue() that does all three's work llvm-svn: 93197
* Compute isFunctionLocal in MDNode ctor or via argument in new function ↵Victor Hernandez2010-01-101-4/+2
| | | | | | | | getWhenValsUnresolved(). Document PFS argument to ParseValID() and ConvertGlobalOrMetadataValIDToValue(). llvm-svn: 93108
* When parsing function-local metadata, create a function-local MDNodeVictor Hernandez2010-01-061-2/+4
| | | | llvm-svn: 92838
* Re-add parsing of function-local metadata; this time with testcase.Victor Hernandez2010-01-051-11/+10
| | | | llvm-svn: 92793
* now that instruction metadata is only parsed in one place, eliminate theChris Lattner2009-12-301-2/+2
| | | | | | | parser-global MDsOnInst vector and make ParseInstructionMetadata return its result by-ref through an argument like the entire rest of the parser. llvm-svn: 92302
* reimplement ParseOptionalInfo as ParseOptionalCommaAlign, correctlyChris Lattner2009-12-301-4/+4
| | | | | | handle the comma case for metadata. llvm-svn: 92301
* rename ParseOptionalCustomMetadata -> ParseInstructionMetadata,Chris Lattner2009-12-301-1/+1
| | | | | | | and make it non-optional. This fixes the bug where we'd accept and ignore a spurious comma after some instructions. llvm-svn: 92300
* convert 4 more instructions over.Chris Lattner2009-12-301-4/+4
| | | | llvm-svn: 92299
* 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
OpenPOWER on IntegriCloud