31 Commits

Author SHA1 Message Date
Devang Patel
ba3fa6c6e1 s/ParameterAttributes/Attributes/g
llvm-svn: 56513
2008-09-23 23:03:40 +00:00
Chris Lattner
744299382f recommit bcreader, handling packed structs correctly. Apparently
people want fast *and* correct.  Sheesh.

llvm-svn: 55102
2008-08-21 02:34:16 +00:00
Daniel Dunbar
ad1a1de17c Revert 55090, regressions in:
- Postgres
 - llvm-test/SingleSource/UnitTests/{2006-01-23-InitializedBitField,
   2004-11-28-GlobalBoolLayout, 2003-05-02-DependentPHI}

llvm-svn: 55100
2008-08-21 01:54:58 +00:00
Chris Lattner
0bed49ccd7 Fix an N^2 issue handling constant resolution due to RAUW in large arrays
this speeds up the bcreader from 6.67s to 0.12s on a testcase Daniel 
provided.  rdar://6158117

llvm-svn: 55090
2008-08-21 00:11:50 +00:00
Gabor Greif
2d3024d838 eliminate calls to deprecated Use::init() interface
llvm-svn: 51570
2008-05-26 21:33:52 +00:00
Gabor Greif
f6caff66a1 merge of use-diet branch to trunk
llvm-svn: 50943
2008-05-10 08:32:32 +00:00
Dan Gohman
c60c67fc37 Add explicit keywords.
llvm-svn: 48801
2008-03-25 22:06:05 +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
Chandler Carruth
7132e00de7 This is the patch to provide clean intrinsic function overloading support in LLVM. It cleans up the intrinsic definitions and generally smooths the process for more complicated intrinsic writing. It will be used by the upcoming atomic intrinsics as well as vector and float intrinsics in the future.
This also changes the syntax for llvm.bswap, llvm.part.set, llvm.part.select, and llvm.ct* intrinsics. They are automatically upgraded by both the LLVM ASM reader and the bitcode reader. The test cases have been updated, with special tests added to ensure the automatic upgrading is supported.

llvm-svn: 40807
2007-08-04 01:51:18 +00:00
Chris Lattner
9eeada9470 Fix PR1434 and test/Linker/link-archive.ll, this is a regression from 1.9.
llvm-svn: 37204
2007-05-18 04:02:46 +00:00
Chris Lattner
a6f88ced8b implement the ModuleProvider::dematerializeFunction hook
llvm-svn: 37080
2007-05-15 06:29:44 +00:00
Jeff Cohen
fd73e54ef8 Keep header file free of 'possible loss of data' warnings.
llvm-svn: 36832
2007-05-06 03:23:14 +00:00
Chris Lattner
df1233dfbb stop encoding type/value pairs when the type is implied by the value.
This shrinks the function block of kc++ from 1055K to 906K

llvm-svn: 36816
2007-05-06 00:00:00 +00:00
Chris Lattner
fee5a3752a add support for reading the param attrs block
llvm-svn: 36731
2007-05-04 03:30:17 +00:00
Chris Lattner
5285b5ea2f add reader logic for terminator instrs.
llvm-svn: 36642
2007-05-02 05:46:45 +00:00
Chris Lattner
8393055447 handle function-level forward references, read binops.
llvm-svn: 36620
2007-05-01 07:01:57 +00:00
Chris Lattner
85b7b40621 implement materializeModule, force deallocation of vector memory when we
are done with them, start implementing ParseFunctionBody

llvm-svn: 36617
2007-05-01 05:52:21 +00:00
Chris Lattner
48a8de3f4d The stream to read from is now an ivar
llvm-svn: 36615
2007-05-01 05:01:34 +00:00
Chris Lattner
51ffe7ce15 implement scafolding for lazy deserialization of function bodies
llvm-svn: 36614
2007-05-01 04:59:48 +00:00
Chris Lattner
6694f60bec Switch the bitcode reader interface to take a MemoryBuffer instead of knowing
anything about disk I/O itself.  This greatly simplifies its interface -
eliminating the need for the ReaderWrappers.cpp file.

This adds a new option to llvm-dis (-bitcode) which instructs it to read
the input file as bitcode.  Until/unless the bytecode reader is taught to
read from MemoryBuffer, there is no way to handle stdin reading without it.

I don't plan to switch the bytecode reader over, I'd rather delete it :),
so the option will stay around temporarily.

llvm-svn: 36554
2007-04-29 07:54:31 +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
44c1707207 add bitcode alias support
llvm-svn: 36461
2007-04-26 02:46:40 +00:00
Chris Lattner
890683d636 ensure that every error return sets a message (and goes through Error, for
easy breakpointing).

Fix bugs reading constantexpr geps.  We now can disassemble kc++ global
initializers.

llvm-svn: 36398
2007-04-24 18:15:21 +00:00
Chris Lattner
1663ccaf13 implement support for reading aggregate constants, including handling forward
constant references, etc.

llvm-svn: 36391
2007-04-24 05:48:56 +00:00
Chris Lattner
fbc1d33b81 read basic constants: null, undef, integers <= 64bits
llvm-svn: 36389
2007-04-24 03:30:34 +00:00
Chris Lattner
47d131bd32 track global inits
llvm-svn: 36385
2007-04-24 00:18:21 +00:00
Chris Lattner
ccaa448dcf Read global symtab
llvm-svn: 36378
2007-04-23 21:26:05 +00:00
Chris Lattner
362b4a1c92 promote LLVMBitCodes to be a public header
llvm-svn: 36358
2007-04-23 01:01:37 +00:00
Jeff Cohen
33be4c78ef Fix build problem with Gentoo 4.1.1-r3.
llvm-svn: 36348
2007-04-22 18:49:32 +00:00
Chris Lattner
1314b9996d Initial support for reading bitcode files. They currently only read types,
the type symtab, and global/function protos, and are missing the important
size optimization, but it is a place to start.

llvm-svn: 36330
2007-04-22 06:23:29 +00:00