aboutsummaryrefslogtreecommitdiff
path: root/lib/Bytecode/Reader/Reader.cpp
AgeCommit message (Collapse)Author
2006-01-27Fix auto-upgrade of intrinsics to work properly with both assembly andReid Spencer
bytecode reading. This code is crufty, the result of much hacking to get things working correctly. Cleanup patches will follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25682 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-25add bc reader/writer support for inline asmChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25621 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-25Make it even more portable.Jeff Cohen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25605 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-25Portably cast a pointer to an integer.Jeff Cohen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25594 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-24Rename methodChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25571 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-23Add support for reading/writing inline asmChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25564 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-23Revert last patch because it messes up the JIT, amongst other things.Reid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25541 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-23For PR411:Reid Spencer
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25539 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-191. Identify bytecode modules that have upgraded intrinsics by setting aReid Spencer
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25448 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-19Make sure intrinsic auto-upgrade is invoked correctly.Reid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25434 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-17Reader support for the insertelement operation.Robert Bocchino
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25404 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-16For PR411:Reid Spencer
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25366 91177308-0d34-0410-b5e6-96231b3b80d8
2006-01-10Added bytecode support for the extractelement operation.Robert Bocchino
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25178 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-12Fix reading LLVM 1.3 bc files.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24329 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-12Read and write section info from/to .bc filesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24321 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-06minor clarity changes, no functionality difference.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24223 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-06don't misencode CC#'sChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24219 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-06encode/decode function alignment in bc filesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24218 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-06Read/write global variable alignments if presentChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24216 91177308-0d34-0410-b5e6-96231b3b80d8
2005-11-05Write/read allocation instruction alignment info to .bc files.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24203 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-23When a function takes a variable number of pointer arguments, with a zeroJeff Cohen
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23888 91177308-0d34-0410-b5e6-96231b3b80d8
2005-10-03Use a map to cache the ModuleType information, so we can do logarithmicChris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23611 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-17Culling out use of unions for converting FP to bits and vice versa.Jim Laskey
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22838 91177308-0d34-0410-b5e6-96231b3b80d8
2005-07-27Eliminate all remaining tabs and trailing spaces.Jeff Cohen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22523 91177308-0d34-0410-b5e6-96231b3b80d8
2005-06-18core changes for varargsAndrew Lenharth
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22254 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06remove some dead (always dynamically false) flagsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21752 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06encode calling conventions for call/invoke instructions.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21751 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06encode function calling convs in the bytecode file. invoke and call areChris Lattner
still to come. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21749 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06add bytecode reader support for tail callsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21727 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-05Remove vim settings from source code; people should use llvm/utils/vim/vimrcMisha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21704 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-05Add some extra checks. Opaque types don't have a null marker.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21700 91177308-0d34-0410-b5e6-96231b3b80d8
2005-04-21Remove trailing whitespaceMisha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21417 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-15This mega patch converts us from using Function::a{iterator|begin|end} toChris Lattner
using Function::arg_{iterator|begin|end}. Likewise Module::g* -> Module::global_*. This patch is contributed by Gabor Greif, thanks! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20597 91177308-0d34-0410-b5e6-96231b3b80d8
2005-03-05second argument to Value::setName is now gone.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20463 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-24use more specific cast.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20297 91177308-0d34-0410-b5e6-96231b3b80d8
2005-02-13Make sure to clear the LazyFunctionLoadMap after we ParseAllFunctionBodies.Chris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20152 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-31Fix the regressions my User changes introduced. Apparently some parts ofChris Lattner
LLVM make the very reasonable assumption that constant expressions will have at least one operand! :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19943 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-29Adjust to changes in User class and minor changes in instruction ctors.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19894 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-20Fix problems uncovered by VC++ (first time compiled by VC++)Jeff Cohen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19056 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-09Remove a dead field, make the map go to integer type ID to hash better andChris Lattner
avoid a getType. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18691 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-09Remove #include inadvertently addedChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18686 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-09Eliminate this ugly hack. This was put back in when replaceAllUsesOf usedChris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18685 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-04Provide more information in the error message that occurs when there areReid Spencer
unresolved constants remaining. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18502 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-04Do not allow bytecode files with unresolved references to be read. DoingChris Lattner
so lets wierd ConstantPlaceholder objects sneak into the system which confuses it greatly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18487 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-30RevisionNum is read by error(), initialize it early.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18386 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-19Add note that this is for old bytecode files.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17991 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15Use a per-function flag bit to indicate whether or not there is a functionChris Lattner
body for the function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17858 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15Make *SURE* to null out the pointer before throwing an exception, otherwiseChris Lattner
the dtor for the BytecodeReader class will try to free it again! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17856 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-15Make functions default to having external linkage if they have noChris Lattner
FunctionBlock. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17853 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14Simplify decompression code by using the high level interface to the CompressorReid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17768 91177308-0d34-0410-b5e6-96231b3b80d8