Chris Lattner
28f1c620c6
Fix PR1216 by cleaning up the ownership of JITResolver.
...
llvm-svn: 34552
2007-02-24 02:57:03 +00:00
Reid Spencer
55e4e98a2a
For PR1195:
...
Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and
PackedTyID -> VectorTyID. No functional changes.
llvm-svn: 34293
2007-02-15 02:26:10 +00:00
Chris Lattner
fc2686da00
From Dan Gohman:
...
While preparing http://llvm.org/PR1198 I noticed several asserts
protecting unprepared code from i128 types that weren't actually failing
when they should because they were written as assert("foo") instead of
something like assert(0 && "foo"). This patch fixes all the cases that a
quick grep found.
llvm-svn: 34267
2007-02-14 06:20:04 +00:00
Chris Lattner
5cece73ec8
Generalize TargetData strings, to support more interesting forms of data.
...
Patch by Scott Michel.
llvm-svn: 34266
2007-02-14 05:52:17 +00:00
Chris Lattner
8038c3c99e
eliminate vector-related allocations
...
llvm-svn: 34223
2007-02-13 06:01:22 +00:00
Chris Lattner
d47f00d794
eliminate use of TargetData::getIndexedOffset that takes a vector
...
llvm-svn: 34163
2007-02-10 20:35:22 +00:00
Chris Lattner
9dafd9fe90
Privatize StructLayout::MemberOffsets, adding an accessor
...
llvm-svn: 34156
2007-02-10 19:55:17 +00:00
Reid Spencer
6e19d7114f
For PR1188:
...
Compute BitMask correctly.
Patch by Leo (wenwenti@hotmail.com ).
llvm-svn: 34026
2007-02-08 00:29:31 +00:00
Reid Spencer
83803ddedb
For PR411:
...
Adjust to changes in Module interface:
getMainFunction() -> getFunction("main")
getNamedFunction(X) -> getFunction(X)
llvm-svn: 33922
2007-02-05 21:19:13 +00:00
Reid Spencer
591bfa1e0b
Changes to support making the shift instructions be true BinaryOperators.
...
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
2007-02-02 02:16:23 +00:00
Reid Spencer
19af04a142
For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoid
...
confusion with external linkage types.
llvm-svn: 33663
2007-01-30 20:08:39 +00:00
Reid Spencer
f7024eb670
Remove tabs.
...
llvm-svn: 33620
2007-01-29 17:55:50 +00:00
Reid Spencer
c0ebe17b6a
Implement use of new IntrinsicLowering interface.
...
llvm-svn: 33619
2007-01-29 17:51:02 +00:00
Reid Spencer
cec82ab067
For PR761:
...
The Module::setEndianness and Module::setPointerSize methods have been
removed. Instead you can get/set the DataLayout. Adjust thise accordingly.
llvm-svn: 33530
2007-01-26 08:11:39 +00:00
Anton Korobeynikov
2079992c16
Moved disassembler to libSystem
...
llvm-svn: 33461
2007-01-23 10:26:08 +00:00
Reid Spencer
e33c18f4d2
For PR970:
...
Clean up handling of isFloatingPoint() and dealing with PackedType.
Patch by Gordon Henriksen!
llvm-svn: 33415
2007-01-21 00:29:26 +00:00
Chris Lattner
9df9e3e57b
Teach TargetData to handle 'preferred' alignment for each target, and use
...
these alignment amounts to align scalars when we can. Patch by Scott Michel!
llvm-svn: 33409
2007-01-20 22:35:55 +00:00
Chris Lattner
dde5663eea
DOUT still evaluates side effects, even though it doesn't print. This means
...
that disassembleBuffer will be called even if NDEBUG, but the result will
be ignored.
llvm-svn: 33408
2007-01-20 20:51:43 +00:00
Reid Spencer
16f559f465
Implement the signed icmp instructions properly. To do this we introduce
...
a small inline function to sign extend a uint64_t value based on its
type's bitwidth. This function is then used in both executeSExtInst and
the various executeICMP_S** functions.
llvm-svn: 33403
2007-01-20 20:12:29 +00:00
Reid Spencer
14d12fbaa6
Implement bit-accurate sext instruction.
...
This patch fixes test/Integer/2007-01-17-TruncSext.ll
llvm-svn: 33394
2007-01-20 08:32:52 +00:00
Reid Spencer
14b42c0040
For PR1043:
...
This is the final patch for this PR. It implements some minor cleanup
in the use of IntegerType, to wit:
1. Type::getIntegerTypeMask -> IntegerType::getBitMask
2. Type::Int*Ty changed to IntegerType* from Type*
3. ConstantInt::getType() returns IntegerType* now, not Type*
This also fixes PR1120.
Patch by Sheng Zhou.
llvm-svn: 33370
2007-01-19 21:13:56 +00:00
Andrew Lenharth
0014d1c74b
fix build on amd64
...
llvm-svn: 33367
2007-01-19 20:17:59 +00:00
Anton Korobeynikov
944088f221
Adding disassembler interface and external hook to udis86 library.
...
llvm-svn: 33358
2007-01-19 17:25:17 +00:00
Reid Spencer
08e261a5f6
Fix a regression in the last patch. When constructing a BitMask, be careful
...
not to overflow 64-bits and end up with a 0 mask. This caused i64 values to
always be stored as 0 with lots of consequential damage to nightly test.
llvm-svn: 33335
2007-01-18 18:01:32 +00:00
Reid Spencer
e242773c58
Use the new maskToBitWidth function to ensure that the results of
...
computations do not overflow the intended bit width.
llvm-svn: 33326
2007-01-18 02:12:51 +00:00
Reid Spencer
bff2bccb7c
Add an inline helper function that masks a GenericValue to a specified
...
bit width.
llvm-svn: 33325
2007-01-18 02:12:10 +00:00
Reid Spencer
539c40505b
Make shl instruction mask its result to the correct bitsize. This is
...
sufficient to get llvm-test/SingleSource/UnitTests/Integer/general-test.ll
working with lli in interpreter mode.
llvm-svn: 33321
2007-01-18 01:32:46 +00:00
Reid Spencer
0524da8d3d
Two changes:
...
1. Fix logic for executeGEP. Only 32-bit and 64-bit integer types are
acceptable as indices.
2. Ensure that all integer cast operations truncate their result to the
integer size of the operand.
llvm-svn: 33318
2007-01-18 01:25:42 +00:00
Reid Spencer
de3db66983
Make sure we truncate stored values to their bit width.
...
llvm-svn: 33317
2007-01-18 01:24:02 +00:00
Chris Lattner
c5e1611848
rename Type::isIntegral to Type::isInteger, eliminating the old Type::isInteger.
...
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
2007-01-15 02:27:26 +00:00
Chris Lattner
f48900e322
eliminate calls to Type::isInteger, preferring isIntegral instead.
...
llvm-svn: 33222
2007-01-15 02:03:16 +00:00
Reid Spencer
373d2bccea
For PR1064:
...
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
2007-01-12 07:05:14 +00:00
Reid Spencer
3d986f6487
Implement review feedback for the ConstantBool->ConstantInt merge. Chris
...
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
2007-01-12 04:24:46 +00:00
Reid Spencer
f3265181e2
Rename BoolTy as Int1Ty. Patch by Sheng Zhou.
...
llvm-svn: 33076
2007-01-11 18:21:29 +00:00
Zhou Sheng
23d24526b2
For PR1043:
...
Merge ConstantIntegral and ConstantBool into ConstantInt.
Remove ConstantIntegral and ConstantBool from LLVM.
llvm-svn: 33073
2007-01-11 12:24:14 +00:00
Reid Spencer
a3ebd9757c
For PR950:
...
Convert signed integer types to signless ones.
llvm-svn: 32787
2006-12-31 05:51:36 +00:00
Reid Spencer
4428c3483b
For PR950:
...
This patch removes the SetCC instructions and replaces them with the ICmp
and FCmp instructions. The SetCondInst instruction has been removed and
been replaced with ICmpInst and FCmpInst.
llvm-svn: 32751
2006-12-23 06:05:41 +00:00
Chris Lattner
49f77ec857
elimiante Statistic static ctors
...
llvm-svn: 32702
2006-12-19 22:56:53 +00:00
Chris Lattner
91037dd5fd
remove static ctors from Statistic objects
...
llvm-svn: 32700
2006-12-19 22:43:32 +00:00
Chris Lattner
3a173beb93
Fix PR1057 (compilation on macos 10.3), patch by Scott Michel!
...
llvm-svn: 32644
2006-12-17 21:04:02 +00:00
Jim Laskey
1becbe31b8
Simplify the fetching of relocation mode.
...
llvm-svn: 32588
2006-12-14 22:53:42 +00:00
Jim Laskey
19b276f67f
1. Tidy up jump table info.
...
2. Allow the jit to handle PIC relocable jump tables.
llvm-svn: 32581
2006-12-14 19:17:33 +00:00
Reid Spencer
5bc563a190
Change inferred cast creation calls to more specific cast creations.
...
llvm-svn: 32460
2006-12-12 01:17:41 +00:00
Bill Wendling
23b8b13c9d
Removing even more <iostream> includes.
...
llvm-svn: 32320
2006-12-07 20:04:42 +00:00
Bill Wendling
a3246c4272
Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are
...
now cerr, cout, and NullStream resp.
llvm-svn: 32298
2006-12-07 01:30:32 +00:00
Chris Lattner
a531ce882e
Detemplatize the Statistic class. The only type it is instantiated with
...
is 'unsigned'.
llvm-svn: 32279
2006-12-06 17:46:33 +00:00
Jeff Cohen
f99052befb
Unbreak VC++ build.
...
llvm-svn: 32113
2006-12-02 02:22:01 +00:00
Anton Korobeynikov
f627d28d9c
Introducing external weak linkage. Darwin codegen should be added later.
...
llvm-svn: 32052
2006-12-01 00:25:12 +00:00
Bill Wendling
dc4b499ace
Removed #include <iostream> and replaced streams with llvm streams.
...
llvm-svn: 31949
2006-11-27 23:54:50 +00:00
Reid Spencer
992d9788b3
For PR950:
...
The long awaited CAST patch. This introduces 12 new instructions into LLVM
to replace the cast instruction. Corresponding changes throughout LLVM are
provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the
exception of 175.vpr which fails only on a slight floating point output
difference.
llvm-svn: 31931
2006-11-27 01:05:10 +00:00
Evan Cheng
2503d332cd
Allow target to specify alignment for function stub.
...
llvm-svn: 31788
2006-11-16 20:04:54 +00:00
Chris Lattner
ccbbe940eb
Simplify IntrinsicLowering and clarify that it is only for use by the
...
CBE and interpreter.
llvm-svn: 31755
2006-11-15 18:00:10 +00:00
Chris Lattner
fd15a7ef64
if lazy compilation is disabled, print an error message and abort if
...
lazy compilation is ever attempted
llvm-svn: 31602
2006-11-09 19:32:13 +00:00
Chris Lattner
ef18cdd6fb
init ivar
...
llvm-svn: 31601
2006-11-09 19:31:15 +00:00
Jim Laskey
28fec74f1b
Remove redundant <cmath>.
...
llvm-svn: 31561
2006-11-08 19:16:44 +00:00
Reid Spencer
da1f5b882a
For PR950:
...
This patch converts the old SHR instruction into two instructions,
AShr (Arithmetic) and LShr (Logical). The Shr instructions now are not
dependent on the sign of their operands.
llvm-svn: 31542
2006-11-08 06:47:33 +00:00
Reid Spencer
4bafa71dc1
For PR786:
...
Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting
fall out by removing unused variables. Remaining warnings have to do with
unused functions (I didn't want to delete code without review) and unused
variables in generated code. Maintainers should clean up the remaining
issues when they see them. All changes pass DejaGnu tests and Olden.
llvm-svn: 31380
2006-11-02 20:25:50 +00:00
Reid Spencer
34154e10e7
Remove a function prototype that is no longer needed (REM patch missed it)
...
llvm-svn: 31374
2006-11-02 08:12:02 +00:00
Reid Spencer
1abf69e923
For PR950:
...
Replace the REM instruction with UREM, SREM and FREM.
llvm-svn: 31369
2006-11-02 01:53:59 +00:00
Reid Spencer
a47902dc6f
Remove unnecessary sign conversions made possible by last patch.
...
llvm-svn: 31339
2006-11-01 03:45:43 +00:00
Reid Spencer
ea7b487e03
Fix a bug in the interpreter where divides of unmatched signed operands
...
would fail. E.g. udiv sint X, Y or sdiv uint X, Y would fail to find a
type match in the switch statement and fail the operation.
llvm-svn: 31338
2006-11-01 03:41:05 +00:00
Reid Spencer
6833ffe8b8
For PR950:
...
Make necessary changes to support DIV -> [SUF]Div. This changes llvm to
have three division instructions: signed, unsigned, floating point. The
bytecode and assembler are bacwards compatible, however.
llvm-svn: 31195
2006-10-26 06:15:43 +00:00
Reid Spencer
d414793dbc
For PR950:
...
This patch implements the first increment for the Signless Types feature.
All changes pertain to removing the ConstantSInt and ConstantUInt classes
in favor of just using ConstantInt.
llvm-svn: 31063
2006-10-20 07:07:24 +00:00
Chris Lattner
4943b1d15e
Unbreak the JIT
...
llvm-svn: 30384
2006-09-15 04:56:11 +00:00
Anton Korobeynikov
6e19f80688
Adding dllimport, dllexport and external weak linkage types.
...
DLL* linkages got full (I hope) codegeneration support in C & both x86
assembler backends.
External weak linkage added for future use, we don't provide any
codegeneration, etc. support for it.
llvm-svn: 30374
2006-09-14 18:23:27 +00:00
Chris Lattner
0b75dc90a7
Fix a ton of jit failures
...
llvm-svn: 30292
2006-09-13 16:21:10 +00:00
Evan Cheng
5cc2ef3582
Reflect MachineConstantPoolEntry changes.
...
llvm-svn: 30277
2006-09-12 20:59:59 +00:00
Nate Begeman
1109e4a222
Behold, more work on relocations. Things are looking pretty good now.
...
llvm-svn: 30240
2006-09-10 23:03:44 +00:00
Chris Lattner
33c9ddc91d
Completely rearchitect the interface between targets and the pass manager.
...
This pass:
1. Splits TargetMachine into TargetMachine (generic targets, can be implemented
any way, like the CBE) and LLVMTargetMachine (subclass of TM that is used by
things using libcodegen and other support).
2. Instead of having each target fully populate the passmgr for file or JIT
output, move all this to common code, and give targets hooks they can
implement.
3. Commonalize the target population stuff between file emission and JIT
emission.
4. All (native code) codegen stuff now happens in a FunctionPassManager, which
paves the way for "fast -O0" stuff in the CFE later, and now LLC could
lazily stream .bc files from disk to use less memory.
5. There are now many fewer #includes and the targets don't depend on the
scalar xforms or libanalysis anymore (but codegen does).
6. Changing common code generator pass ordering stuff no longer requires
touching all targets.
7. The JIT now has the option of "-fast" codegen or normal optimized codegen,
which is now orthogonal to the fact that JIT'ing is being done.
llvm-svn: 30081
2006-09-04 04:14:57 +00:00
Chris Lattner
e501184a05
eliminate use of TM.getName()
...
llvm-svn: 30068
2006-09-03 18:37:12 +00:00
Evan Cheng
4bb35b7730
Remove extra spaces.
...
llvm-svn: 30025
2006-09-01 18:45:22 +00:00
Evan Cheng
86888bd45a
Last check-in was a mistake...
...
I've been told apple gcc version number is not guaranteed to increase
monotonically. Change the preprocess condition to make it less risky.
The configuration change is done during the middle 10.4 life cycle so we have
to check __APPLE_CC. For future OS X release, we should be able to assume
-fenable-cxa-atexit is the default.
llvm-svn: 30024
2006-09-01 18:42:59 +00:00
Evan Cheng
22679fcdd8
*** empty log message ***
...
llvm-svn: 30023
2006-09-01 18:40:46 +00:00
Evan Cheng
017334de42
Better comments.
...
llvm-svn: 30017
2006-09-01 07:09:56 +00:00
Evan Cheng
0c6e5c95dc
Yikes. This requires checking apple gcc version.
...
llvm-svn: 30016
2006-09-01 07:00:46 +00:00
Chris Lattner
1eabe5fb58
initial changes to support JIT'ing from multiple module providers, implicitly
...
linking the program on the fly.
llvm-svn: 29721
2006-08-16 01:24:12 +00:00
Chris Lattner
4b861b07a7
Fix handling of asm specifiers for external globals. This unbreaks many programs
...
on leopard in the jit.
llvm-svn: 29391
2006-07-28 21:11:31 +00:00
Evan Cheng
4ceeac4159
Resolve BB references with relocation.
...
llvm-svn: 29351
2006-07-27 18:21:10 +00:00
Jim Laskey
17acc47da9
Fixed a typo in Evan's submisson.
...
llvm-svn: 29345
2006-07-27 13:40:34 +00:00
Evan Cheng
39112023f1
Move synchronizeICache from TargetJITInfo into a static function in JITEmitter.cpp
...
llvm-svn: 29334
2006-07-27 06:33:55 +00:00
Chris Lattner
d2170e1b17
Fix warning on linux
...
llvm-svn: 29314
2006-07-27 00:04:14 +00:00
Evan Cheng
beeb4e5c8c
- Refactor the code that resolve basic block references to a TargetJITInfo
...
method.
- Added synchronizeICache() to TargetJITInfo. It is called after each block
of code is emitted to flush the icache. This ensures correct execution
on targets that have separate dcache and icache.
- Added PPC / Mac OS X specific code to do icache flushing.
llvm-svn: 29276
2006-07-25 20:40:54 +00:00
Nate Begeman
6ba0156891
Fix the build on my old and busted version of OS X
...
llvm-svn: 29266
2006-07-22 16:59:38 +00:00
Evan Cheng
09d3be29fa
Forgot to #ifdef __APPLE__
...
llvm-svn: 29264
2006-07-22 00:42:03 +00:00
Evan Cheng
55bff38268
Resolve __dso_handle.
...
llvm-svn: 29259
2006-07-21 23:06:20 +00:00
Chris Lattner
2d974f5de3
Remove non-portable optimization that isn't worth it
...
llvm-svn: 29115
2006-07-12 00:31:47 +00:00
Chris Lattner
cad94f6042
Change AllocateRWX/DeallocateRWX do not throw an exception.
...
llvm-svn: 29057
2006-07-07 17:31:41 +00:00
Chris Lattner
26b53f505e
Adapt to new interface function materialization interface
...
llvm-svn: 29051
2006-07-07 17:18:09 +00:00
Evan Cheng
2db138d4b0
Added jump table address relocation.
...
llvm-svn: 28908
2006-06-23 01:02:37 +00:00
Chris Lattner
5a1f56fc2a
Simplify TargetData ctor call
...
llvm-svn: 28832
2006-06-16 18:24:38 +00:00
Chris Lattner
4a8f3c456a
Only count instructions as code size, not constant pools and other per-function stuff.
...
llvm-svn: 28827
2006-06-16 18:09:26 +00:00
Chris Lattner
ac373d311b
Simplify interpreter construction.
...
llvm-svn: 28826
2006-06-16 18:08:38 +00:00
Chris Lattner
6838320f46
Fix -pedantic warnings.
...
llvm-svn: 28636
2006-06-01 17:29:22 +00:00
Chris Lattner
50af98a5f2
Fix -pedantic warnings
...
llvm-svn: 28635
2006-06-01 17:27:11 +00:00
Chris Lattner
cba966934e
Silence some -pedantic warnings.
...
llvm-svn: 28629
2006-06-01 17:12:14 +00:00
Reid Spencer
574d4e6992
For PR786:
...
Minor tweaks in public headers and a few .cpp files so that LLVM can build
successfully with -pedantic and projects using LLVM with -pedantic don't
get warnings from LLVM. There's still more -pedantic warnings to fix.
llvm-svn: 28453
2006-05-24 19:21:13 +00:00
Chris Lattner
1024577552
Make this print the right start pointer
...
llvm-svn: 28321
2006-05-16 06:45:50 +00:00
Chris Lattner
05311325f1
LoadLibraryPermanently can theoretically throw an exception. Do not propagate
...
it out of 'ExecutionEngine::create'. This fixes a problem reported by coverity.
llvm-svn: 28293
2006-05-14 19:01:55 +00:00
Chris Lattner
b1ad13a4bc
Fix a hypothetical memory leak, identified by Coverity. In practice, this
...
object is never deleted though.
llvm-svn: 28256
2006-05-12 18:10:12 +00:00
Owen Anderson
29e4d70aed
Refactor a bunch of includes so that TargetMachine.h doesn't have to include
...
TargetData.h. This should make recompiles a bit faster with my current
TargetData tinkering.
llvm-svn: 28238
2006-05-12 06:33:49 +00:00
Chris Lattner
14cdcc59b8
For extra sanity checking, fill free'd memory with garbage so we know that
...
people aren't reusing machine code buffers at all.
llvm-svn: 28228
2006-05-12 00:03:12 +00:00
Chris Lattner
ecc6d6f334
Fix some bugs in the freelist manipulation code.
...
Finally, implement ExecutionEngine::freeMachineCodeForFunction.
llvm-svn: 28227
2006-05-11 23:56:57 +00:00
Chris Lattner
81a3c90080
Significantly revamp allocation of machine code to use free lists, real
...
allocation policies and much more. All this complexity, and we have no
functionality change, woo! :)
llvm-svn: 28225
2006-05-11 23:08:08 +00:00
Chris Lattner
6e58d3a317
Move some methods out of line so that MutexGuard.h isn't needed in a public header.
...
llvm-svn: 28179
2006-05-08 22:00:52 +00:00
Chris Lattner
bf8f91715e
Adjust to use proper TargetData copy ctor
...
llvm-svn: 28112
2006-05-04 21:18:40 +00:00
Chris Lattner
326eedfa77
minor cleanups, no functionality change
...
llvm-svn: 28087
2006-05-03 18:55:56 +00:00
Chris Lattner
d36b66d6dc
Suck block address tracking out of targets into the JIT Emitter. This
...
simplifies the MachineCodeEmitter interface just a little bit and makes
BasicBlocks work like constant pools and jump tables.
llvm-svn: 28082
2006-05-03 17:10:41 +00:00
Owen Anderson
71bc529dfa
Refactor TargetMachine, pushing handling of TargetData into the target-specific subclasses. This has one caller-visible change: getTargetData() now returns a pointer instead of a reference.
...
This fixes PR 759.
llvm-svn: 28074
2006-05-03 01:29:57 +00:00
Chris Lattner
be9958e6f7
Align function bodies correctly.
...
llvm-svn: 28073
2006-05-03 01:03:20 +00:00
Chris Lattner
c43d309514
Simplify some code. Don't add memory blocks to the Blocks list twice.
...
llvm-svn: 28071
2006-05-03 00:54:49 +00:00
Chris Lattner
06ccac43d7
Change the BasicBlockAddrs map to be a vector, indexed by MBB number.
...
llvm-svn: 28069
2006-05-03 00:32:55 +00:00
Chris Lattner
be23568cea
Simplify some code
...
llvm-svn: 28066
2006-05-03 00:13:06 +00:00
Chris Lattner
2bf37af52d
Several related changes:
...
1. Change several methods in the MachineCodeEmitter class to be pure virtual.
2. Suck emitConstantPool/initJumpTableInfo into startFunction, removing them
from the MachineCodeEmitter interface, and reducing the amount of target-
specific code.
3. Change the JITEmitter so that it allocates constantpools and jump tables
*right* next to the functions that they belong to, instead of in a separate
pool of memory. This makes all memory for a function be contiguous, and
means the JITEmitter only tracks one block of memory now.
llvm-svn: 28065
2006-05-02 23:22:24 +00:00
Chris Lattner
8054cd3830
Do not make the JIT memory manager manage the memory for globals. Instead
...
just have the JIT malloc them.
llvm-svn: 28062
2006-05-02 21:57:51 +00:00
Chris Lattner
41cc593fc3
Minor cleanups, no functionality change.
...
llvm-svn: 28061
2006-05-02 21:44:14 +00:00
Chris Lattner
055baf5c7b
Refactor the machine code emitter interface to pull the pointers for the current
...
code emission location into the base class, instead of being in the derived classes.
This change means that low-level methods like emitByte/emitWord now are no longer
virtual (yaay for speed), and we now have a framework to support growable code
segments. This implements feature request #1 of PR469.
llvm-svn: 28059
2006-05-02 18:27:26 +00:00
Chris Lattner
5c1abc2b94
Remove dead method
...
llvm-svn: 28055
2006-05-02 17:20:28 +00:00
Nate Begeman
acdefe26fa
Fix a warning
...
llvm-svn: 27967
2006-04-25 17:46:32 +00:00
Nate Begeman
7ed816f900
JumpTable support! What this represents is working asm and jit support for
...
x86 and ppc for 100% dense switch statements when relocations are non-PIC.
This support will be extended and enhanced in the coming days to support
PIC, and less dense forms of jump tables.
llvm-svn: 27947
2006-04-22 18:53:45 +00:00
Chris Lattner
4f0240b577
Fix JIT support for static ctors, which was apparently completely broken!
...
This allows Prolangs-C++/city and probably a bunch of other stuff to work
well with the new front-end
llvm-svn: 27941
2006-04-22 05:02:46 +00:00
Jeff Cohen
dab30f45d8
Get JIT/Interpreter working on Windows again.
...
llvm-svn: 27037
2006-03-24 02:53:49 +00:00
Chris Lattner
56a6600a72
prune #includes
...
llvm-svn: 26975
2006-03-23 05:43:58 +00:00
Chris Lattner
3d5ca510c9
remove always-null IntrinsicLowering argument.
...
llvm-svn: 26971
2006-03-23 05:28:02 +00:00
Chris Lattner
2aa3f9a6b5
remove the intrinsiclowering hook
...
llvm-svn: 26970
2006-03-23 05:22:51 +00:00
Chris Lattner
ab22cd5c33
Eliminate the dependency of ExecutionEngine on the JIT/Interpreter libraries.
...
Now you can build a tool with just the JIT or just the interpreter.
llvm-svn: 26946
2006-03-22 06:07:50 +00:00
Reid Spencer
728a2e9f62
Convert llvm.cs.uiuc.edu -> llvm.org
...
llvm-svn: 26748
2006-03-14 05:54:52 +00:00
Chris Lattner
0b736a0d1e
Add a helper method for running static ctors/dtors in the module.
...
llvm-svn: 26619
2006-03-08 18:42:46 +00:00
Chris Lattner
e976315aec
simplify this code now that each constant pool entry is not separately allocated
...
llvm-svn: 26079
2006-02-09 04:49:59 +00:00
Chris Lattner
c81f375f21
Adjust to MachineConstantPool interface change: instead of keeping a
...
value/alignment pair for each constant, keep a value/offset pair.
llvm-svn: 26078
2006-02-09 04:46:04 +00:00
Chris Lattner
1111a4b76d
rename fields of constant pool entries
...
llvm-svn: 26076
2006-02-09 04:22:52 +00:00
Jeff Cohen
e66383eb06
The interpreter assumes that the caller of runFunction() must be lli, and
...
therefore the function being called must be a main() returning an int. The
consequences when these assumptions are false are not good, so don't assume
them.
llvm-svn: 26031
2006-02-07 05:29:44 +00:00
Jeff Cohen
909ee648c7
Teach the interpreter to handle global variables that are added to a module after
...
interpretation has begun. The JIT already handles this situation correctly, and
the interpreter can already handle new functions being added.
llvm-svn: 26030
2006-02-07 05:11:57 +00:00
Evan Cheng
f115c17f23
Allow the specification of explicit alignments for constant pool entries.
...
llvm-svn: 25855
2006-01-31 22:23:14 +00:00
Chris Lattner
201586783d
Add #include of <iostream>
...
llvm-svn: 25516
2006-01-22 23:41:42 +00:00
Robert Bocchino
51e0be55e8
Fixed InitializeMemory to handle ConstantPacked.
...
llvm-svn: 25481
2006-01-20 18:18:40 +00:00
Chris Lattner
446a1e7a68
Wrap long lines.
...
llvm-svn: 25140
2006-01-07 06:20:51 +00:00
Chris Lattner
05a3f338cd
wrap long line
...
llvm-svn: 25139
2006-01-07 06:12:07 +00:00
Chris Lattner
5b4d016b3f
Fix a nasty bug that was causing miscompilation of global variables
...
on big endian 32-bit targets in some cases (e.g. PPC). This fixes several
PPC JIT failures.
llvm-svn: 23914
2005-10-23 23:54:56 +00:00
Chris Lattner
965f10f2f2
Shrinkify to match llc
...
llvm-svn: 23912
2005-10-23 22:39:01 +00:00
Jim Laskey
1f9c40400c
Add help support for -mcpu and -mattr.
...
llvm-svn: 23222
2005-09-02 19:27:43 +00:00
Jim Laskey
f32ef9a37f
1. Use SubtargetFeatures in llc/lli.
...
2. Propagate feature "string" to all targets.
3. Implement use of SubtargetFeatures in PowerPCTargetSubtarget.
llvm-svn: 23192
2005-09-01 21:38:21 +00:00
Andrew Lenharth
a48ff3bd21
one cannot allocate a global, until one is done initializing the global pointers
...
llvm-svn: 22568
2005-08-01 17:35:40 +00:00
Jeff Cohen
019104459d
Keep tabs and trailing spaces out.
...
llvm-svn: 22565
2005-07-30 18:33:25 +00:00
Andrew Lenharth
d8bfbd99e9
support near allocations for the JIT
...
llvm-svn: 22554
2005-07-29 23:40:16 +00:00
Andrew Lenharth
02e0c80ecb
Like constants, globals on some platforms are GOT relative. This means they have to be allocated
...
near the GOT, which new doesn't do. So break out the allocate into a new function.
Also move GOT index handling into JITResolver. This lets it update the mapping when a Lazy
function is JITed. It doesn't managed the table, just the mapping. Note that this is
still non-ideal, as any function that takes a function address should also take a GOT
index, but that is a lot of changes. The relocation resolve process updates any GOT entry
it sees is out of date.
llvm-svn: 22537
2005-07-28 12:44:13 +00:00
Jeff Cohen
bd51ec7461
Eliminate all remaining tabs and trailing spaces.
...
llvm-svn: 22523
2005-07-27 06:12:32 +00:00
Chris Lattner
dd4417e8f9
fix a warning on 32-bit systems
...
llvm-svn: 22513
2005-07-25 23:42:58 +00:00
Andrew Lenharth
8a56432457
the JIT memory manager will construct a GOT if you want it too. Also, it places the constants in the allocated memory, rather than a malloc area
...
llvm-svn: 22497
2005-07-22 20:48:12 +00:00
Chris Lattner
648d6f150e
count the number of relocations performed.
...
llvm-svn: 22480
2005-07-20 16:29:20 +00:00
Reid Spencer
78910545f0
For PR540:
...
This patch completes the changes for making lli thread-safe. Here's the list
of changes:
* The Support/ThreadSupport* files were removed and replaced with the
MutexGuard.h file since all ThreadSupport* declared was a Mutex Guard.
The implementation of MutexGuard.h is now based on sys::Mutex which hides
its implementation and makes it unnecessary to have the -NoSupport.h and
-PThreads.h versions of ThreadSupport.
* All places in ExecutionEngine that previously referred to "Mutex" now
refer to sys::Mutex
* All places in ExecutionEngine that previously referred to "MutexLocker"
now refer to MutexGuard (this is frivolous but I believe the technically
correct name for such a class is "Guard" not a "Locker").
These changes passed all of llvm-test. All we need now are some test cases
that actually use multiple threads.
llvm-svn: 22404
2005-07-12 15:51:55 +00:00
Chris Lattner
cd3e31ee5a
fix long lines
...
llvm-svn: 22369
2005-07-11 02:49:16 +00:00
Andrew Lenharth
a9214fec08
core changes for varargs
...
llvm-svn: 22254
2005-06-18 18:34:52 +00:00
Chris Lattner
5f2a0d17ab
Fix a really horrible problem that causes the JIT to miscompile any program
...
that use 64-bit integers on 32-bit hosts.
llvm-svn: 21886
2005-05-12 06:01:28 +00:00
Chris Lattner
4e9d804f1d
Make the stub functions be tail calls
...
llvm-svn: 21738
2005-05-06 06:48:54 +00:00
Misha Brukman
3ef1d71bfa
Convert tabs to spaces
...
llvm-svn: 21440
2005-04-22 04:08:30 +00:00
Misha Brukman
933cdaf254
Remove trailing whitespace
...
llvm-svn: 21422
2005-04-21 22:55:34 +00:00
Misha Brukman
dda9dce10f
* Remove trailing whitespace
...
* Convert tabs to spaces
llvm-svn: 21421
2005-04-21 22:43:08 +00:00
Misha Brukman
774e55c446
Remove trailing whitespace
...
llvm-svn: 21420
2005-04-21 22:36:52 +00:00
Chris Lattner
25a77fc58f
Add support for targets that require stubs for external functions.
...
llvm-svn: 21313
2005-04-18 01:44:27 +00:00
Chris Lattner
c9a3ea81bf
Fix the missing symbols problem Bill was hitting. Patch contributed by
...
Bill Wendling!!
llvm-svn: 20649
2005-03-17 15:38:16 +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
b632a13aa7
Use const iterators where possible. Patch by Evan Jones!
...
llvm-svn: 20354
2005-02-27 19:06:10 +00:00
Chris Lattner
68c342b28f
Fix problems running the HowToUseJIT on powerpc, and probably problems with
...
ANY program that does not have all functions internalized.
llvm-svn: 20258
2005-02-20 18:43:35 +00:00
Chris Lattner
11f76e4975
This is no longer needed. Global variables with undef initializers can be
...
initialized to anything, including garbage.
llvm-svn: 20010
2005-02-02 20:50:50 +00:00
Chris Lattner
24bf1ca350
If the interpreter tries to execute an external function, kill it. Of course
...
since we are dirty, special case __main. This should fix the infinite loop
horrible stuff that happens on linux-alpha when configuring llvm-gcc. It
might also help cygwin, who knows??
llvm-svn: 19729
2005-01-21 19:59:37 +00:00
Chris Lattner
605b9a23a2
Improve compatiblity with HPUX on Itanium, patch by Duraid Madina
...
llvm-svn: 19586
2005-01-16 01:31:31 +00:00
Chris Lattner
b35b30c283
Rework constant pool handling so that function constant pools are no longer
...
leaked to the system. Now they are destroyed with the JITMemoryManager is
destroyed.
llvm-svn: 19434
2005-01-10 18:23:22 +00:00
Chris Lattner
7a6914d3fc
Silence warnings
...
llvm-svn: 19392
2005-01-08 20:13:44 +00:00
Chris Lattner
ed92fd75e8
Silence VS warnings.
...
llvm-svn: 19391
2005-01-08 20:13:19 +00:00
Chris Lattner
f1c684b3a2
Silence VS warnings.
...
llvm-svn: 19390
2005-01-08 20:07:03 +00:00
Chris Lattner
a4a16f17a3
Silence VS warnings
...
llvm-svn: 19389
2005-01-08 20:05:34 +00:00
Reid Spencer
5cc7e5cbd5
Be double sure about including sys/stat.h by wrapping the inclusion in
...
an "#if defined(HAVE_SYS_STAT_H)".
llvm-svn: 19069
2004-12-20 06:34:02 +00:00
Reid Spencer
96bd09da4a
Move the #include of sys/stat.h inside the linux "hack" for the stat
...
family of functions so it gets noticed if we ever remove this.
llvm-svn: 19022
2004-12-17 19:09:16 +00:00
Reid Spencer
bf452c05e9
Only #include sys/stat.h if we're on linux where we have the PR274 problem.
...
llvm-svn: 19020
2004-12-17 18:56:29 +00:00
Reid Spencer
663dc7fb78
Get rid of some leaks found by VC leak detector.
...
Patch contributed by Morten Ofsted.
llvm-svn: 18889
2004-12-13 16:04:04 +00:00
Chris Lattner
fd2cb25d5f
Properly implement a fix for PR475
...
llvm-svn: 18537
2004-12-05 07:19:16 +00:00
Chris Lattner
0f2cf7324c
Revert this patch, it broke a ton of programs.
...
llvm-svn: 18535
2004-12-05 06:59:59 +00:00
Alkis Evlogimenos
687155333f
Fix PR475.
...
llvm-svn: 18515
2004-12-05 01:51:20 +00:00
Chris Lattner
cfb8e1d6c8
Remove darwin specific majik
...
llvm-svn: 18467
2004-12-03 23:02:55 +00:00
Chris Lattner
378036ed74
Do not look here for elegance.
...
This fixes the ugly darwin "cannot find symbols starting with __" issue.
Thanks for Owen/resistor for testing this out for me.
llvm-svn: 18454
2004-12-03 07:16:51 +00:00
Chris Lattner
e4350af487
Remove unneeded cast.
...
llvm-svn: 18405
2004-12-01 17:13:05 +00:00
Chris Lattner
1196903800
Fix the JIT when being used from llvm-db
...
llvm-svn: 18391
2004-11-30 17:41:49 +00:00
Reid Spencer
74b17227a5
Use System/DynamicLibrary instead of Support/DynamicLinker
...
llvm-svn: 18357
2004-11-29 14:11:29 +00:00
Chris Lattner
76705f0c6b
Rename Emitter.cpp -> JITEmitter.cpp
...
llvm-svn: 18132
2004-11-22 22:00:25 +00:00
Chris Lattner
70c19defde
Fix the FIXME, nuke the JIT specific forceCompilationOf method.
...
llvm-svn: 18131
2004-11-22 21:54:35 +00:00
Chris Lattner
d38029313a
These methods are obsolete
...
llvm-svn: 18129
2004-11-22 21:48:33 +00:00
Chris Lattner
8909e6452a
Support targets that require stubs for external functions better
...
llvm-svn: 18098
2004-11-22 07:24:43 +00:00
Chris Lattner
596d18c8dd
Clean up DEBUG output
...
llvm-svn: 18081
2004-11-21 03:44:32 +00:00
Chris Lattner
ce43d636fe
Allow targets to avoid emitting a stub for EVERY lazily resolved call. In
...
most cases (e.g. direct calls) no stub is needed.
llvm-svn: 18080
2004-11-21 03:37:42 +00:00
Chris Lattner
d8c2739b24
Implement relocation support by adding a target independent resolver interface.
...
llvm-svn: 18069
2004-11-20 23:57:07 +00:00
Chris Lattner
c6c7f2ac58
This method does not exist any longer.
...
llvm-svn: 18061
2004-11-20 23:51:03 +00:00
Chris Lattner
d70e6be604
Add getCurrentPCOffset() and addRelocation() methods.
...
Add stub support for relocations to finishFunction
llvm-svn: 18035
2004-11-20 03:46:14 +00:00
Chris Lattner
5bf6fe1636
Add accessor
...
llvm-svn: 18030
2004-11-20 03:11:07 +00:00
Chris Lattner
2978400c23
Match change in MachineCodeEmitter prototype.
...
llvm-svn: 18009
2004-11-19 20:56:46 +00:00
Chris Lattner
0169ce5e9e
This is a horrible hack to work around libstdc++ bugs :(
...
llvm-svn: 17988
2004-11-19 08:44:07 +00:00
Chris Lattner
89536fedee
Now that we have ghost linkage, we can force resolution of external symbols
...
immediately instead of lazily.
In this program, for example:
int main() {
printf("hello world\n");
printf("hello world\n");
printf("hello world\n");
printf("hello world\n");
}
We used to have to go through compilation callback 4 times (once for each
call to printf), now we don't go to it at all.
Thanks to Misha for noticing this, and for adding the initial ghost linkage
patches.
llvm-svn: 17864
2004-11-15 23:20:04 +00:00
Chris Lattner
583ea4764c
There is no reason to try to materialize the function from bytecode if it
...
already has been. This may be a small speedup.
llvm-svn: 17863
2004-11-15 23:18:09 +00:00
Misha Brukman
8c397821a5
Implement ExecutionEngine::freeMachineCodeForFunction()
...
llvm-svn: 17601
2004-11-07 23:58:46 +00:00
Brian Gaeke
a757bae04f
When emitting debug msgs for function stubs, don't truncate the
...
printed pointer value if sizeof(unsigned) != pointer size. Instead,
use uintptr_t.
llvm-svn: 17338
2004-10-29 18:22:45 +00:00
Reid Spencer
1be896397a
Fix library name.
...
llvm-svn: 17307
2004-10-28 05:37:24 +00:00
Reid Spencer
d3f7233495
Change Library Names Not To Conflict With Others When Installed
...
llvm-svn: 17286
2004-10-27 23:18:45 +00:00
Reid Spencer
1a344dfd95
Changes to support rand48 tests
...
llvm-svn: 17284
2004-10-27 23:03:44 +00:00
Chris Lattner
0dbd792854
Fix the interpreter crash that Michael McCracken found
...
llvm-svn: 17239
2004-10-26 05:35:14 +00:00
Misha Brukman
cfd8a7eb53
Use cleaner quoting and eliminate blank space
...
llvm-svn: 17174
2004-10-22 23:35:57 +00:00
Reid Spencer
e48ba34fd4
We won't use automake
...
llvm-svn: 17155
2004-10-22 03:35:04 +00:00
Reid Spencer
ce514b1c2c
Initial automake generated Makefile template
...
llvm-svn: 17136
2004-10-18 23:55:41 +00:00
Chris Lattner
2fae8a1ef9
Add support for unreachable
...
llvm-svn: 17056
2004-10-16 18:21:33 +00:00
Chris Lattner
8d479b62ad
Add support for undef
...
llvm-svn: 17055
2004-10-16 18:19:26 +00:00
Reid Spencer
e6418ec30f
Update to reflect changes in Makefile rules.
...
llvm-svn: 16950
2004-10-13 11:46:52 +00:00
Reid Spencer
7d9cba7a0f
Initial version of automake Makefile.am file.
...
llvm-svn: 16885
2004-10-10 20:43:57 +00:00
Reid Spencer
c6a8d70cff
Convert code to compile with vc7.1.
...
Patch contributed by Paolo Invernizzi. Thanks Paolo!
llvm-svn: 16368
2004-09-15 17:06:42 +00:00
Reid Spencer
ce7c15737a
Simplify the sys::Memory interface per Chris' request.
...
llvm-svn: 16318
2004-09-13 22:38:11 +00:00
Reid Spencer
b1df891777
Convert the Emitter to use the lib/System "Memory" interface instead of the
...
old SystemUtils.h interface to allocate RWX blocks of memory.
llvm-svn: 16286
2004-09-11 04:31:03 +00:00
Reid Spencer
c4abcbefb1
Changes For Bug 352
...
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.
llvm-svn: 16137
2004-09-01 22:55:40 +00:00
Chris Lattner
ffaad65b22
Add a special case for argc,argv
...
llvm-svn: 15802
2004-08-16 01:07:04 +00:00
Chris Lattner
923c3d3594
Don't pass too many arguments into runFunction
...
llvm-svn: 15801
2004-08-16 01:05:35 +00:00
Chris Lattner
9cbc5f306a
Finally, add support for calling arbitrary non-varargs functions.
...
llvm-svn: 15799
2004-08-16 00:14:18 +00:00
Chris Lattner
70ddd561fb
Handle all nullary functions, of any valid return type.
...
llvm-svn: 15798
2004-08-15 23:53:06 +00:00
Chris Lattner
ed3a37a9ed
Fine, go all of the way and check that the argument types are correct as well.
...
llvm-svn: 15797
2004-08-15 23:39:59 +00:00
Chris Lattner
9657e92992
These only really work if returning int or void
...
llvm-svn: 15796
2004-08-15 23:34:48 +00:00
Chris Lattner
557b356131
Handle zero arg function case
...
llvm-svn: 15794
2004-08-15 23:31:43 +00:00
Chris Lattner
c5f794403e
Simplify code a bit, print error message always instead of asserting.
...
llvm-svn: 15793
2004-08-15 23:29:50 +00:00
Alkis Evlogimenos
f853362a44
Stop using getValues().
...
llvm-svn: 15487
2004-08-04 08:44:43 +00:00
Reid Spencer
b6c894409b
bug 122:
...
- Replace ConstantPointerRef usage with GlobalValue usage
- Correct isa<Constant> for GlobalValue subclass
llvm-svn: 14951
2004-07-18 00:41:27 +00:00
Chris Lattner
d7870e4b1a
Fixes for PR341
...
llvm-svn: 14848
2004-07-15 02:51:32 +00:00
Chris Lattner
94212f7102
Fixes for PR341
...
llvm-svn: 14847
2004-07-15 02:51:31 +00:00
Chris Lattner
196b4f394f
The cleanup is done. Update comment.
...
llvm-svn: 14761
2004-07-11 08:24:02 +00:00
Chris Lattner
6029e3234e
Make add constantexprs work with all types, fixing the regressions from last night
...
llvm-svn: 14760
2004-07-11 08:01:11 +00:00
Chris Lattner
6bbbf294d1
Goodbye macro hell, hello nice clean simple extensible code. This change
...
also gives the JIT the ability to dynamically load targets. e.g.
lli -load libparisc.so -march=parisc foo.bc
llvm-svn: 14750
2004-07-11 04:02:06 +00:00
Reid Spencer
b28dd1ea9f
Make error message consistent with the rest of LLVM by saying that bytecode
...
is read, not parsed.
llvm-svn: 14677
2004-07-07 21:20:28 +00:00
Reid Spencer
ff9f74082f
Fix for bug 391.
...
Improve exeception handling around bcreader invocations.
llvm-svn: 14674
2004-07-07 21:01:38 +00:00
Reid Spencer
50ec3f9325
Add #include <iostream> since Value.h does not #include it any more.
...
llvm-svn: 14622
2004-07-04 12:19:56 +00:00
Chris Lattner
cc465361d9
Move the IntrinsicLowering header into the CodeGen directory, as per PR346
...
llvm-svn: 14266
2004-06-20 07:49:54 +00:00
Chris Lattner
8a9f1ebd22
Move the IntrinsicLowering header into the CodeGen directory
...
llvm-svn: 14265
2004-06-20 07:46:18 +00:00
Chris Lattner
0cd29ae2cd
Rename Type::PrimitiveID to TypeId and ::getPrimitiveID() to ::getTypeID()
...
llvm-svn: 14201
2004-06-17 18:19:28 +00:00
Brian Gaeke
19d2a396da
Add int ferror(FILE *)
...
llvm-svn: 14194
2004-06-16 02:56:40 +00:00
Chris Lattner
2ac00d274f
Implement PR315: abort, don't warn, when missing external functions encountered
...
This fixes some critical problems building libstdc++ on cygwin.
llvm-svn: 13934
2004-06-01 21:49:00 +00:00
Chris Lattner
14dedcd354
Use the SystemUtils.h file to do our dirty work.
...
llvm-svn: 13868
2004-05-28 00:57:27 +00:00
Chris Lattner
d646e15d1a
Remove long unused #includes
...
llvm-svn: 13857
2004-05-27 21:25:44 +00:00
Chris Lattner
8014d498cb
These #includes are long dead
...
llvm-svn: 13856
2004-05-27 21:24:38 +00:00
Chris Lattner
736ca634a7
This code is a real mess, but at least get the JIT *building* on platforms
...
(such as plan 9) without mmap. Of course it won't RUN... but that's another
step. :)
llvm-svn: 13839
2004-05-27 18:03:56 +00:00
Reid Spencer
63530c743e
Get rid of a wart: useless getFILE function is now a cast macro.
...
llvm-svn: 13747
2004-05-25 08:46:15 +00:00
Brian Gaeke
aaeb4c4d23
Generalize the strlen size_t hack, for the benefit of the other external
...
functions with wrappers that either take or return size_ts.
llvm-svn: 13296
2004-05-01 06:42:15 +00:00
Brian Gaeke
96889991bb
Go back to the interpreter main loop after performing intrinsic lowering,
...
because 1) the first instruction might not be a call site, and
2) CS and SF.Caller were not getting set to point to the new call site
anyway (resulting in a crash on e.g. call %llvm.memset).
llvm-svn: 13122
2004-04-23 18:05:28 +00:00
Brian Gaeke
3cde72d6e2
Implement emitWordAt() for the JIT emitter.
...
llvm-svn: 13118
2004-04-23 17:11:14 +00:00
Chris Lattner
8b841e0e35
Add support for the select instruction
...
llvm-svn: 13076
2004-04-20 16:43:21 +00:00
Brian Gaeke
2c02798e86
Add a TargetData to the PassManager regardless of the TargetMachine.
...
This should unbreak the Sparc JIT again.
llvm-svn: 12949
2004-04-14 17:45:52 +00:00
Chris Lattner
27dff42330
Adjust to new interface
...
llvm-svn: 12646
2004-04-04 19:47:06 +00:00
Chris Lattner
5c053bfa99
Adjust to new gep_type_iterator prototypes.
...
llvm-svn: 12644
2004-04-04 17:30:06 +00:00
Chris Lattner
686a74c7ac
Fix PR296: [execution engines] Unhandled cast constant expression
...
llvm-svn: 12435
2004-03-16 08:38:56 +00:00