1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-30 15:32:52 +01:00
Commit Graph

194 Commits

Author SHA1 Message Date
Chris Lattner
e3222507ee Fix a bug in the bc reader/writer: we were not correctly encoding varargs
nonccc calls (we were dropping the CC and tail flag).  This broke several
FORTRAN programs.

Testcase here: Regression/Assembler/2006-05-26-VarargsCallEncode.ll

llvm-svn: 28501
2006-05-26 18:42:34 +00:00
Chris Lattner
92c219136f use isValidOperands instead of duplicating checks
llvm-svn: 27527
2006-04-08 04:09:19 +00:00
Chris Lattner
4bd21d8de2 Add shufflevector reading support
llvm-svn: 27509
2006-04-08 01:17:59 +00:00
Chris Lattner
f358863a69 We have an assertion that checks that we do not encode null values into the
.bc file if they are supposed to be implicit.  This is cool, except that it
checked *after* constant expr folding: improving constant expr folding could
cause the .bc reader to assert out on old .bc files.  Move the check so that
it checks all simple constants, but no constantexprs.

llvm-svn: 27480
2006-04-07 05:00:02 +00:00
Jim Laskey
c741139c24 Handle the removal of the debug chain.
llvm-svn: 26729
2006-03-13 13:07:37 +00:00
Chris Lattner
3c762c1b8f Simplify the autoupgrade interface
llvm-svn: 26475
2006-03-02 23:59:12 +00:00
Reid Spencer
bd79be19a2 Fix auto-upgrade of intrinsics to work properly with both assembly and
bytecode reading. This code is crufty, the result of much hacking to get things
working correctly. Cleanup patches will follow.

llvm-svn: 25682
2006-01-27 11:49:27 +00:00
Chris Lattner
db805c3206 add bc reader/writer support for inline asm
llvm-svn: 25621
2006-01-25 23:08:15 +00:00
Jeff Cohen
fdbce069c5 Make it even more portable.
llvm-svn: 25605
2006-01-25 17:18:50 +00:00
Jeff Cohen
3218a69301 Portably cast a pointer to an integer.
llvm-svn: 25594
2006-01-25 02:40:10 +00:00
Chris Lattner
2cbee3afee Rename method
llvm-svn: 25571
2006-01-24 04:14:29 +00:00
Chris Lattner
8f3a1256b7 Add support for reading/writing inline asm
llvm-svn: 25564
2006-01-23 23:43:17 +00:00
Reid Spencer
8469bdf93a Revert last patch because it messes up the JIT, amongst other things.
llvm-svn: 25541
2006-01-23 08:11:03 +00:00
Reid Spencer
766d1975a9 For PR411:
Don't try to be smart about fixing intrinsic functions when they're read
in, just fix them after the module is read when all names are resolved.

llvm-svn: 25539
2006-01-23 07:39:03 +00:00
Reid Spencer
f2454f5cd2 1. Identify bytecode modules that have upgraded intrinsics by setting a
boolean flag if we read a function prototype that needs upgrading.
2. Don't upgrade the CallInst instruction until after its been inserted
   into the basic block, and only if we know that we have seen an
   upgraded intrinsic function.

llvm-svn: 25448
2006-01-19 07:02:16 +00:00
Reid Spencer
fd0ae0047a Make sure intrinsic auto-upgrade is invoked correctly.
llvm-svn: 25434
2006-01-19 01:21:04 +00:00
Robert Bocchino
a1ce64b534 Reader support for the insertelement operation.
llvm-svn: 25404
2006-01-17 20:06:35 +00:00
Reid Spencer
3cecd3c4cf For PR411:
This patch is an incremental step towards supporting a flat symbol table.
It de-overloads the intrinsic functions by providing type-specific intrinsics
and arranging for automatically upgrading from the old overloaded name to
the new non-overloaded name. Specifically:
  llvm.isunordered -> llvm.isunordered.f32, llvm.isunordered.f64
  llvm.sqrt -> llvm.sqrt.f32, llvm.sqrt.f64
  llvm.ctpop -> llvm.ctpop.i8, llvm.ctpop.i16, llvm.ctpop.i32, llvm.ctpop.i64
  llvm.ctlz -> llvm.ctlz.i8, llvm.ctlz.i16, llvm.ctlz.i32, llvm.ctlz.i64
  llvm.cttz -> llvm.cttz.i8, llvm.cttz.i16, llvm.cttz.i32, llvm.cttz.i64
New code should not use the overloaded intrinsic names. Warnings will be
emitted if they are used.

llvm-svn: 25366
2006-01-16 21:12:35 +00:00
Robert Bocchino
f2b874e907 Added bytecode support for the extractelement operation.
llvm-svn: 25178
2006-01-10 19:04:39 +00:00
Chris Lattner
a8fcbe17d7 Fix reading LLVM 1.3 bc files.
llvm-svn: 24329
2005-11-12 18:31:54 +00:00
Chris Lattner
c51b0afa07 Read and write section info from/to .bc files
llvm-svn: 24321
2005-11-12 01:33:40 +00:00
Chris Lattner
d88f347ba5 minor clarity changes, no functionality difference.
llvm-svn: 24223
2005-11-06 08:23:17 +00:00
Chris Lattner
e86e4acf28 don't misencode CC#'s
llvm-svn: 24219
2005-11-06 07:46:13 +00:00
Chris Lattner
6c8657e621 encode/decode function alignment in bc files
llvm-svn: 24218
2005-11-06 07:43:39 +00:00
Chris Lattner
b456fb372d Read/write global variable alignments if present
llvm-svn: 24216
2005-11-06 07:11:04 +00:00
Chris Lattner
76a2afc0d3 Write/read allocation instruction alignment info to .bc files.
llvm-svn: 24203
2005-11-05 22:08:14 +00:00
Jeff Cohen
a38c737e85 When a function takes a variable number of pointer arguments, with a zero
pointer marking the end of the list, the zero *must* be cast to the pointer
type.  An un-cast zero is a 32-bit int, and at least on x86_64, gcc will
not extend the zero to 64 bits, thus allowing the upper 32 bits to be
random junk.

The new END_WITH_NULL macro may be used to annotate a such a function
so that GCC (version 4 or newer) will detect the use of un-casted zero
at compile time.

llvm-svn: 23888
2005-10-23 04:37:20 +00:00
Chris Lattner
14db91a643 Use a map to cache the ModuleType information, so we can do logarithmic
lookups instead of linear time lookups.  This speeds up bc parsing of a
large file from

137.834u 118.256s 4:27.96
to
132.611u 114.436s 4:08.53

with a release build.

llvm-svn: 23611
2005-10-03 21:26:53 +00:00
Jim Laskey
61e3d7bca5 Culling out use of unions for converting FP to bits and vice versa.
llvm-svn: 22838
2005-08-17 19:34:49 +00:00
Jeff Cohen
bd51ec7461 Eliminate all remaining tabs and trailing spaces.
llvm-svn: 22523
2005-07-27 06:12:32 +00:00
Andrew Lenharth
a9214fec08 core changes for varargs
llvm-svn: 22254
2005-06-18 18:34:52 +00:00
Chris Lattner
f6775e16bf remove some dead (always dynamically false) flags
llvm-svn: 21752
2005-05-06 22:35:09 +00:00
Chris Lattner
1f6d3b2344 encode calling conventions for call/invoke instructions.
llvm-svn: 21751
2005-05-06 22:34:01 +00:00
Chris Lattner
494f3da7b3 encode function calling convs in the bytecode file. invoke and call are
still to come.

llvm-svn: 21749
2005-05-06 20:42:57 +00:00
Chris Lattner
59d23baab1 add bytecode reader support for tail calls
llvm-svn: 21727
2005-05-06 06:13:34 +00:00
Misha Brukman
f52511fcc6 Remove vim settings from source code; people should use llvm/utils/vim/vimrc
llvm-svn: 21704
2005-05-05 22:33:09 +00:00
Chris Lattner
c390fbea0d Add some extra checks. Opaque types don't have a null marker.
llvm-svn: 21700
2005-05-05 20:57:00 +00:00
Misha Brukman
e69deb7eec Remove trailing whitespace
llvm-svn: 21417
2005-04-21 21:44:41 +00:00
Chris Lattner
4b688a1c70 This mega patch converts us from using Function::a{iterator|begin|end} to
using Function::arg_{iterator|begin|end}.  Likewise Module::g* -> Module::global_*.

This patch is contributed by Gabor Greif, thanks!

llvm-svn: 20597
2005-03-15 04:54:21 +00:00
Chris Lattner
1ccff5c8c7 second argument to Value::setName is now gone.
llvm-svn: 20463
2005-03-05 19:05:20 +00:00
Chris Lattner
608a8c9f55 use more specific cast.
llvm-svn: 20297
2005-02-24 05:26:04 +00:00
Chris Lattner
1788cf35ab Make sure to clear the LazyFunctionLoadMap after we ParseAllFunctionBodies.
Otherwise, clients who call ParseAllFunctionBodies will attempt to parse
the function bodies twice, which is (uh) very very bad (tm).

This fixes gccld on python.

llvm-svn: 20152
2005-02-13 17:48:18 +00:00
Chris Lattner
e4aaa4cf01 Fix the regressions my User changes introduced. Apparently some parts of
LLVM make the very reasonable assumption that constant expressions will
have at least one operand! :)

llvm-svn: 19943
2005-01-31 01:11:13 +00:00
Chris Lattner
031d5f649c Adjust to changes in User class and minor changes in instruction ctors.
llvm-svn: 19894
2005-01-29 00:36:19 +00:00
Jeff Cohen
61fe69a426 Fix problems uncovered by VC++ (first time compiled by VC++)
llvm-svn: 19056
2004-12-20 03:23:46 +00:00
Chris Lattner
c5f6c3fd48 Remove a dead field, make the map go to integer type ID to hash better and
avoid a getType.

llvm-svn: 18691
2004-12-09 06:19:44 +00:00
Chris Lattner
565d505b28 Remove #include inadvertently added
llvm-svn: 18686
2004-12-09 04:53:17 +00:00
Chris Lattner
23b2d6fd82 Eliminate this ugly hack. This was put back in when replaceAllUsesOf used
a different algorithm that was extremely inefficient for instructions with
many operands.

This reduces the time of this code snippet from .23s for 176.gcc to 0.03s
in a debug build, which speeds up total llvm-dis time just barely.

It's more of a code cleanup than a speedup.

llvm-svn: 18685
2004-12-09 04:51:50 +00:00
Reid Spencer
8cddd97526 Provide more information in the error message that occurs when there are
unresolved constants remaining.

llvm-svn: 18502
2004-12-04 22:19:53 +00:00
Chris Lattner
8bd875f0de Do not allow bytecode files with unresolved references to be read. Doing
so lets wierd ConstantPlaceholder objects sneak into the system which
confuses it greatly.

llvm-svn: 18487
2004-12-04 05:28:27 +00:00