summaryrefslogtreecommitdiffstats
path: root/llvm/lib/VMCore/AsmWriter.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45418
* Don't forget to print address space qualifiers when printing out the type ↵Christopher Lamb2007-12-181-1/+4
| | | | | | table! Thanks to Gordon Henriksen for pointing this out. llvm-svn: 45147
* Implement address space attribute for LLVM pointer types. Address spaces are Christopher Lamb2007-12-111-2/+9
| | | | | | | | | | | | | | | | | regions of memory that have a target specific relationship, as described in the Embedded C Technical Report. This also implements the 2007-12-11-AddressSpaces test, which demonstrates how address space attributes can be used in LLVM IR. In addition, this patch changes the bitcode signature for stores (in a backwards compatible manner), such that the pointer type, rather than the pointee type, is encoded. This permits type information in the pointer (e.g. address space) to be preserved for stores. LangRef updates are forthcoming. llvm-svn: 44858
* Adding a collector name attribute to Function in the IR. These Gordon Henriksen2007-12-101-0/+2
| | | | | | | | | | | | | | | | | | | | methods are new to Function: bool hasCollector() const; const std::string &getCollector() const; void setCollector(const std::string &); void clearCollector(); The assembly representation is as such: define void @f() gc "shadow-stack" { ... The implementation uses an on-the-side table to map Functions to collector names, such that there is no overhead. A StringPool is further used to unique collector names, which are extremely likely to be unique per process. llvm-svn: 44769
* Fix PR1146: parameter attributes are longer part ofDuncan Sands2007-11-271-29/+22
| | | | | | | | | | | | the function type, instead they belong to functions and function calls. This is an updated and slightly corrected version of Reid Spencer's original patch. The only known problem is that auto-upgrading of bitcode files doesn't seem to work properly (see test/Bitcode/AutoUpgradeIntrinsics.ll). Hopefully a bitcode guru (who might that be? :) ) will fix it. llvm-svn: 44359
* print a call to a fastcc function as:Chris Lattner2007-11-181-2/+2
| | | | | | | | | | call x86_fastcallcc void @func( i32* %X, i64 0 ) not: callx86_fastcallcc void @func( i32* %X, i64 0 ) This fixes Codegen/X86/fast-cc-merge-stack-adj.ll llvm-svn: 44217
* Next PPC long double bits. First cut at constants.Dale Johannesen2007-10-111-2/+4
| | | | | | | | | No compile-time support for constant operations yet, just format transformations. Make readers and writers work. Split constants into 2 doubles in Legalize. llvm-svn: 42865
* Make temporaries explicit to avoid prematureDale Johannesen2007-09-261-1/+3
| | | | | | destruction of compiler-created ones. llvm-svn: 42383
* Revise previous patch per review comments.Dale Johannesen2007-09-121-28/+57
| | | | | | | Next round of x87 long double stuff. Getting close now, basically works. llvm-svn: 41875
* Next round of APFloat changes.Dale Johannesen2007-09-061-3/+6
| | | | | | | | | | | | | | Use APFloat in UpgradeParser and AsmParser. Change all references to ConstantFP to use the APFloat interface rather than double. Remove the ConstantFP double interfaces. Use APFloat functions for constant folding arithmetic and comparisons. (There are still way too many places APFloat is just a wrapper around host float/double, but we're getting there.) llvm-svn: 41747
* simplify code and print visibility for declarations.Chris Lattner2007-08-191-25/+21
| | | | llvm-svn: 41173
* Reinstate the patch for escaping non-printing characters and allow forReid Spencer2007-05-221-19/+36
| | | | | | \\ to escape \. All these cases are now handled by the AsmParser. llvm-svn: 37295
* temporarily revert reid's asmwriter patch, it is missing the asmparser pieceChris Lattner2007-05-221-33/+19
| | | | | | | | that decodes the escape sequences, thus breaking all cases that use them. This fixes test/Assembler/2007-05-21-Escape.ll llvm-svn: 37284
* Get the order of the hext digits right!Reid Spencer2007-05-191-2/+2
| | | | llvm-svn: 37261
* Adjust how LLVM names are produced:Reid Spencer2007-05-191-19/+33
| | | | | | | | | | 1. Always use % for local and @ for global. 2. Replace NameNeedsQuotes with QuoteNameIfNeeded so that any adjustments to the name can be done in one pass. 3. Implement generation of hex escapes so we don't get "wonky" characters in the output. llvm-svn: 37260
* Drop 'const'Devang Patel2007-05-031-2/+2
| | | | llvm-svn: 36662
* Use 'static const char' instead of 'static const int'.Devang Patel2007-05-021-2/+2
| | | | | | | Due to darwin gcc bug, one version of darwin linker coalesces static const int, which defauts PassID based pass identification. llvm-svn: 36652
* Do not use typeinfo to identify pass in pass manager.Devang Patel2007-05-011-0/+2
| | | | llvm-svn: 36632
* Implement protected visibility. This partly implements PR1363. LinkerAnton Korobeynikov2007-04-291-0/+3
| | | | | | should be taught to deal with protected symbols. llvm-svn: 36565
* Implement review feedbackAnton Korobeynikov2007-04-291-2/+1
| | | | llvm-svn: 36564
* Implement review feedback. Aliasees can be either GlobalValue's orAnton Korobeynikov2007-04-281-4/+10
| | | | | | bitcasts of them. llvm-svn: 36537
* print aliases before functionsChris Lattner2007-04-261-5/+6
| | | | llvm-svn: 36459
* Implement aliases. This fixes PR1017 and it's dependent bugs. CFE partAnton Korobeynikov2007-04-251-9/+65
| | | | | | will follow. llvm-svn: 36435
* PR400 work phase 1. Add attributed load/store instructions for ↵Christopher Lamb2007-04-221-0/+7
| | | | | | volatile/align to LLVM. llvm-svn: 36349
* For PR1146:Reid Spencer2007-04-221-0/+11
| | | | | | | | Make ParamAttrsList objects unique. You can no longer directly create or destroy them but instead must go through the ParamAttrsList::get() interface. llvm-svn: 36327
* Revert Christopher Lamb's load/store alignment changes.Reid Spencer2007-04-211-7/+0
| | | | llvm-svn: 36309
* add support for alignment attributes on load/store instructionsChristopher Lamb2007-04-211-0/+7
| | | | llvm-svn: 36301
* don't access argument list of prototypesChris Lattner2007-04-181-7/+24
| | | | llvm-svn: 36238
* Implement the "thread_local" keyword.Lauro Ramos Venancio2007-04-121-1/+2
| | | | llvm-svn: 35950
* For PR1146:Reid Spencer2007-04-111-11/+11
| | | | | | | Put the parameter attributes in their own ParamAttr name space. Adjust the rest of llvm as a result. llvm-svn: 35877
* For PR1146:Reid Spencer2007-04-091-30/+36
| | | | | | Adjust writing of parameter attributes to use ParamAttrList class. llvm-svn: 35808
* No need to generate the implementation keyword any more. Its frivolous.Reid Spencer2007-03-281-2/+0
| | | | llvm-svn: 35405
* Change uses of Function::front to Function::getEntryBlock for readability.Dan Gohman2007-03-221-1/+1
| | | | llvm-svn: 35265
* For PR1258:Reid Spencer2007-03-191-39/+20
| | | | | | | | | | Radically simplify the SlotMachine. There is no need to keep Value planes around any more. This change causes slot numbering to number all un-named, non-void values starting at 0 and incrementing monotonically through the function, regardless of type (including BasicBlocks). Getting slot numbers is now a single lookup operation instead of a double lookup. llvm-svn: 35171
* Adjust to changes in the APInt interface.Reid Spencer2007-02-271-1/+1
| | | | llvm-svn: 34681
* Allow the AsmWriter to print out arbitrary precision integers.Reid Spencer2007-02-271-1/+1
| | | | llvm-svn: 34664
* For PR1195:Reid Spencer2007-02-151-4/+4
| | | | | | | Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and PackedTyID -> VectorTyID. No functional changes. llvm-svn: 34293
* For PR411:Reid Spencer2007-02-051-1/+1
| | | | | | | | | | This patch replaces the SymbolTable class with ValueSymbolTable which does not support types planes. This means that all symbol names in LLVM must now be unique. The patch addresses the necessary changes to deal with this and removes code no longer needed as a result. This completes the bulk of the changes for this PR. Some cleanup patches will follow. llvm-svn: 33918
* Fix a comment that needed to change after SHIFT patch landed.Reid Spencer2007-02-021-2/+1
| | | | llvm-svn: 33781
* Changes to support making the shift instructions be true BinaryOperators.Reid Spencer2007-02-021-2/+1
| | | | | | | | | | | | This feature is needed in order to support shifts of more than 255 bits on large integer types. This changes the syntax for llvm assembly to make shl, ashr and lshr instructions look like a binary operator: shl i32 %X, 1 instead of shl i32 %X, i8 1 Additionally, this should help a few passes perform additional optimizations. llvm-svn: 33776
* For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoidReid Spencer2007-01-301-2/+2
| | | | | | confusion with external linkage types. llvm-svn: 33663
* Propagate changes from my local tree. This patch includes:Anton Korobeynikov2007-01-281-3/+0
| | | | | | | | | | | | | | | | | | | | | | 1. New parameter attribute called 'inreg'. It has meaning "place this parameter in registers, if possible". This is some generalization of gcc's regparm(n) attribute. It's currently used only in X86-32 backend. 2. Completely rewritten CC handling/lowering code inside X86 backend. Merged stdcall + c CCs and fastcall + fast CC. 3. Dropped CSRET CC. We cannot add struct return variant for each target-specific CC (e.g. stdcall + csretcc and so on). 4. Instead of CSRET CC introduced 'sret' parameter attribute. Setting in on first attribute has meaning 'This is hidden pointer to structure return. Handle it gently'. 5. Fixed small bug in llvm-extract + add new feature to FunctionExtraction pass, which relinks all internal-linkaged callees from deleted function to external linkage. This will allow further linking everything together. NOTEs: 1. Documentation will be updated soon. 2. llvm-upgrade should be improved to translate csret => sret. Before this, there will be some unexpected test fails. llvm-svn: 33597
* For PR645:Reid Spencer2007-01-261-93/+53
| | | | | | | Implement new syntax for local and global symbols. Types and local symbols use the % prefix. Global variables and functions use the @ prefix. llvm-svn: 33523
* make this more efficient in release builds (time and space)Chris Lattner2007-01-151-6/+2
| | | | llvm-svn: 33239
* rename Type::isIntegral to Type::isInteger, eliminating the old Type::isInteger.Chris Lattner2007-01-151-3/+3
| | | | | | | | | rename Type::getIntegralTypeMask to Type::getIntegerTypeMask. This makes naming much more consistent. For example, there are now no longer any instances of IntegerType that are not considered isInteger! :) llvm-svn: 33225
* * PIC codegen for X86/Linux has been implementedAnton Korobeynikov2007-01-121-3/+17
| | | | | | | | * PIC-aware internal structures in X86 Codegen have been refactored * Visibility (default/weak) has been added * Docs fixes (external weak linkage, visibility, formatting) llvm-svn: 33136
* Always write 1 bit integers as i1 not "bool".Reid Spencer2007-01-121-5/+1
| | | | llvm-svn: 33115
* For PR1064:Reid Spencer2007-01-121-3/+15
| | | | | | | | | | | | | | | | | | | | | | | Implement the arbitrary bit-width integer feature. The feature allows integers of any bitwidth (up to 64) to be defined instead of just 1, 8, 16, 32, and 64 bit integers. This change does several things: 1. Introduces a new Derived Type, IntegerType, to represent the number of bits in an integer. The Type classes SubclassData field is used to store the number of bits. This allows 2^23 bits in an integer type. 2. Removes the five integer Type::TypeID values for the 1, 8, 16, 32 and 64-bit integers. These are replaced with just IntegerType which is not a primitive any more. 3. Adjust the rest of LLVM to account for this change. Note that while this incremental change lays the foundation for arbitrary bit-width integers, LLVM has not yet been converted to actually deal with them in any significant way. Most optimization passes, for example, will still only deal with the byte-width integer types. Future increments will rectify this situation. llvm-svn: 33113
* Implement review feedback for the ConstantBool->ConstantInt merge. ChrisReid Spencer2007-01-121-2/+3
| | | | | | | | recommended that getBoolValue be replaced with getZExtValue and that get(bool) be replaced by get(const Type*, uint64_t). This implements those changes. llvm-svn: 33110
* Rename BoolTy as Int1Ty. Patch by Sheng Zhou.Reid Spencer2007-01-111-1/+1
| | | | llvm-svn: 33076
OpenPOWER on IntegriCloud