Commit Graph

16 Commits

Author SHA1 Message Date
Nick Lewycky a879819918 Don't remove aggregate-typed module level constants before encoding functions
since functions may contain aggregate constants too.

llvm-svn: 73220
2009-06-12 05:20:12 +00:00
Devang Patel 4c758ea3e0 Large mechanical patch.
s/ParamAttr/Attribute/g
s/PAList/AttrList/g
s/FnAttributeWithIndex/AttributeWithIndex/g
s/FnAttr/Attribute/g

This sets the stage 
- to implement function notes as function attributes and 
- to distinguish between function attributes and return value attributes.

This requires corresponding changes in llvm-gcc and clang.

llvm-svn: 56622
2008-09-25 21:00:45 +00:00
Devang Patel ba3fa6c6e1 s/ParameterAttributes/Attributes/g
llvm-svn: 56513
2008-09-23 23:03:40 +00:00
Chris Lattner 8a923e7c28 Reimplement the parameter attributes support, phase #1. hilights:
1. There is now a "PAListPtr" class, which is a smart pointer around
   the underlying uniqued parameter attribute list object, and manages
   its refcount.  It is now impossible to mess up the refcount.
2. PAListPtr is now the main interface to the underlying object, and
   the underlying object is now completely opaque.
3. Implementation details like SmallVector and FoldingSet are now no
   longer part of the interface.
4. You can create a PAListPtr with an arbitrary sequence of
   ParamAttrsWithIndex's, no need to make a SmallVector of a specific 
   size (you can just use an array or scalar or vector if you wish).
5. All the client code that had to check for a null pointer before
   dereferencing the pointer is simplified to just access the 
   PAListPtr directly.
6. The interfaces for adding attrs to a list and removing them is a
   bit simpler.

Phase #2 will rename some stuff (e.g. PAListPtr) and do other less 
invasive changes.

llvm-svn: 48289
2008-03-12 17:45:29 +00:00
Chris Lattner f3ebc3f3d2 Remove attribution from file headers, per discussion on llvmdev.
llvm-svn: 45418
2007-12-29 20:36:04 +00:00
Chris Lattner 76fd90fb61 Fix a nasty problem where we would miss enumeration of some types. This fixes
issues with CE_CAST etc.

llvm-svn: 36864
2007-05-06 08:35:19 +00:00
Chris Lattner 430e80d670 optimize constant layout. This fixes encoding of 181.mcf (by ensuring
integer structure idx's are emitted before constant expr geps) and shrinks
files slightly.  For example kc++ shrinks from 4326188 to 4240128 bytes.

llvm-svn: 36742
2007-05-04 05:21:47 +00:00
Chris Lattner 874eb28ee6 pass by reference, not by value
llvm-svn: 36721
2007-05-04 00:45:24 +00:00
Chris Lattner e4bbad630f enumerate parameter attr lists.
llvm-svn: 36709
2007-05-03 22:46:43 +00:00
Chris Lattner e6e364c198 start code for writing out instructions. Separate BB#s from normal value
#'s.

llvm-svn: 36472
2007-04-26 05:53:54 +00:00
Chris Lattner 7c37b01998 enumerate BB's separately from other function values.
llvm-svn: 36467
2007-04-26 04:42:16 +00:00
Chris Lattner 5f640b9cc9 add support for incorporating and purging functions to the value enumerator
llvm-svn: 36465
2007-04-26 03:50:57 +00:00
Chris Lattner 831d420256 move some code around, fix a bug in the reader reading globalinits (which
I just introduced), stub out function reading, purge aggregate values from
the value table before reading functions.

llvm-svn: 36463
2007-04-26 03:27:58 +00:00
Chris Lattner 52523561d9 Emit module-level constants.
llvm-svn: 36384
2007-04-24 00:16:04 +00:00
Chris Lattner 1e93f5b8f4 fix off-by one
llvm-svn: 36377
2007-04-23 21:23:41 +00:00
Chris Lattner c1d10d67a1 Initial support for writing bitcode files. This currently only writes types,
the type symtab, and global/function protos, and is missing the important
size optimization, but it is a place to start.

llvm-svn: 36331
2007-04-22 06:24:45 +00:00