summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ExecutionEngine/JIT
Commit message (Collapse)AuthorAgeFilesLines
...
* Unbreak build with gcc 4.3: provide missed includes and silence most ↵Anton Korobeynikov2008-02-201-0/+2
| | | | | | annoying warnings. llvm-svn: 47367
* Enable exception handling int JITNicolas Geoffray2008-02-134-1/+800
| | | | llvm-svn: 47079
* Use getPreferredAlignmentLog or getPreferredAlignmentDuncan Sands2008-01-291-1/+1
| | | | | | | to get the alignment of global variables, rather than using hand-made versions. llvm-svn: 46495
* JITEmitter.cpp was trying to sync the icache for function stubs, butChris Lattner2008-01-251-8/+0
| | | | | | | | was actually passing a completely incorrect size to sys_icache_invalidate. Instead of having the JITEmitter do this (which doesn't have the correct size), just make the target sync its own stubs. llvm-svn: 46354
* X86 JIT PIC jumptable support.Evan Cheng2008-01-051-4/+6
| | | | llvm-svn: 45616
* X86 PIC JIT support fixes: encoding bugs, add lazy pointer stubs support.Evan Cheng2008-01-041-0/+49
| | | | llvm-svn: 45575
* Remove symbols that don't exist, remove tabs, fix comment typoChris Lattner2008-01-031-17/+15
| | | | llvm-svn: 45553
* Fix PR1873, a problem finding stat-related symbols on linux, due toChris Lattner2008-01-031-9/+20
| | | | | | "libc_nonshared.a". Patch by Edwin Török! llvm-svn: 45532
* Change MachineRelocation::DoesntNeedFnStub to NeedStub. This fields will be usedEvan Cheng2008-01-031-2/+2
| | | | | | for non-function GV relocations that require function address stubs (e.g. Mac OS X in non-static mode). llvm-svn: 45527
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-296-12/+12
| | | | llvm-svn: 45418
* remove attribution from lib Makefiles.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45415
* Adjust VStudio files to add JITMemoryManager files + include <cassert> from ↵Chuck Rose III2007-12-061-0/+1
| | | | | | same. llvm-svn: 44651
* add a new ExecutionEngine::createJIT which can be used if you only want Chris Lattner2007-12-063-8/+33
| | | | | | | to create a JIT. This lets you specify JIT-specific configuration items like the JITMemoryManager to use. llvm-svn: 44647
* simplify creation of the interpreter, make ExecutionEngine ctor protected,Chris Lattner2007-12-063-6/+6
| | | | | | delete one ExecutionEngine ctor, minor cleanup. llvm-svn: 44646
* split the JIT memory management code out from the main JIT logic into itsChris Lattner2007-12-052-411/+454
| | | | | | | own JITMemoryManager interface. There is no functionality change with this patch. llvm-svn: 44640
* for consistency, allow a fallthrough if the final check returns null.Chris Lattner2007-11-281-1/+2
| | | | llvm-svn: 44406
* Make this actually work on systems that support ppc long double.Chris Lattner2007-11-271-3/+8
| | | | llvm-svn: 44374
* Unbreak all of the darwin/ppc32 JIT failures having to do Chris Lattner2007-11-271-0/+10
| | | | | | with not being able to find printf. llvm-svn: 44373
* Executive summary: getTypeSize -> getTypeStoreSize / getABITypeSize.Duncan Sands2007-11-012-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The meaning of getTypeSize was not clear - clarifying it is important now that we have x86 long double and arbitrary precision integers. The issue with long double is that it requires 80 bits, and this is not a multiple of its alignment. This gives a primitive type for which getTypeSize differed from getABITypeSize. For arbitrary precision integers it is even worse: there is the minimum number of bits needed to hold the type (eg: 36 for an i36), the maximum number of bits that will be overwriten when storing the type (40 bits for i36) and the ABI size (i.e. the storage size rounded up to a multiple of the alignment; 64 bits for i36). This patch removes getTypeSize (not really - it is still there but deprecated to allow for a gradual transition). Instead there is: (1) getTypeSizeInBits - a number of bits that suffices to hold all values of the type. For a primitive type, this is the minimum number of bits. For an i36 this is 36 bits. For x86 long double it is 80. This corresponds to gcc's TYPE_PRECISION. (2) getTypeStoreSizeInBits - the maximum number of bits that is written when storing the type (or read when reading it). For an i36 this is 40 bits, for an x86 long double it is 80 bits. This is the size alias analysis is interested in (getTypeStoreSize returns the number of bytes). There doesn't seem to be anything corresponding to this in gcc. (3) getABITypeSizeInBits - this is getTypeStoreSizeInBits rounded up to a multiple of the alignment. For an i36 this is 64, for an x86 long double this is 96 or 128 depending on the OS. This is the spacing between consecutive elements when you form an array out of this type (getABITypeSize returns the number of bytes). This is TYPE_SIZE in gcc. Since successive elements in a SequentialType (arrays, pointers and vectors) need to be aligned, the spacing between them will be given by getABITypeSize. This means that the size of an array is the length times the getABITypeSize. It also means that GEP computations need to use getABITypeSize when computing offsets. Furthermore, if an alloca allocates several elements at once then these too need to be aligned, so the size of the alloca has to be the number of elements multiplied by getABITypeSize. Logically speaking this doesn't have to be the case when allocating just one element, but it is simpler to also use getABITypeSize in this case. So alloca's and mallocs should use getABITypeSize. Finally, since gcc's only notion of size is that given by getABITypeSize, if you want to output assembler etc the same as gcc then getABITypeSize is the size you want. Since a store will overwrite no more than getTypeStoreSize bytes, and a read will read no more than that many bytes, this is the notion of size appropriate for alias analysis calculations. In this patch I have corrected all type size uses except some of those in ScalarReplAggregates, lib/Codegen, lib/Target (the hard cases). I will get around to auditing these too at some point, but I could do with some help. Finally, I made one change which I think wise but others might consider pointless and suboptimal: in an unpacked struct the amount of space allocated for a field is now given by the ABI size rather than getTypeStoreSize. I did this because every other place that reserves memory for a type (eg: alloca) now uses getABITypeSize, and I didn't want to make an exception for unpacked structs, i.e. I did it to make things more uniform. This only effects structs containing long doubles and arbitrary precision integers. If someone wants to pack these types more tightly they can always use a packed struct. llvm-svn: 43620
* add a mechanism for the JIT to invoke a function to lazily create functions ↵Chris Lattner2007-10-221-0/+5
| | | | | | as they are referenced. llvm-svn: 43210
* llvm-gcc3 is dead, along with it __main.Chris Lattner2007-10-221-12/+0
| | | | llvm-svn: 43209
* Switching TargetMachineRegistry to use the new generic Registry.Gordon Henriksen2007-10-171-2/+3
| | | | llvm-svn: 43094
* Implement x86 long double in jit (not reallyDale Johannesen2007-09-171-1/+10
| | | | | | complete, but common cases work) llvm-svn: 42043
* Next round of APFloat changes.Dale Johannesen2007-09-061-2/+4
| | | | | | | | | | | | | | Use APFloat in UpgradeParser and AsmParser. Change all references to ConstantFP to use the APFloat interface rather than double. Remove the ConstantFP double interfaces. Use APFloat functions for constant folding arithmetic and comparisons. (There are still way too many places APFloat is just a wrapper around host float/double, but we're getting there.) llvm-svn: 41747
* move assertion into mutex guard, a partial fix for PR1606.Chris Lattner2007-08-131-1/+1
| | | | llvm-svn: 41050
* eliminate redundant conditions from the signless types conversion.Chris Lattner2007-08-081-7/+4
| | | | llvm-svn: 40927
* New CallInst interface to address GLIBCXX_DEBUG errors caused byDavid Greene2007-08-011-1/+1
| | | | | | | | indexing an empty std::vector. Updates to all clients. llvm-svn: 40660
* Add detection of __dso_handle presence during configure. Use this ↵Anton Korobeynikov2007-07-301-15/+20
| | | | | | | | | information in the JITer (short path is added for darwin). This is needed to properly JIT llvm-gcc-4.2-built binaries, since cxa_atexit is enabled by default on much more targets. llvm-svn: 40600
* Hush a noisy warning from GCC 4.2 about overflow during conversion by usingReid Spencer2007-07-191-2/+2
| | | | | | the type "unsigned" instead of uintptr_t for a 1-bit structure field. llvm-svn: 40066
* fix typosGabor Greif2007-07-091-5/+5
| | | | llvm-svn: 38453
* Here is the bulk of the sanitizing.Gabor Greif2007-07-052-5/+5
| | | | | | Almost all occurrences of "bytecode" in the sources have been eliminated. llvm-svn: 37913
* (For Chris): Fix failure where we rejected compiling stubs when lazy ↵Evan Cheng2007-06-301-18/+25
| | | | | | compilation is disabled. llvm-svn: 37825
* avoid mutating a global in an accessorChris Lattner2007-04-201-5/+6
| | | | llvm-svn: 36289
* fit in 80 colsChris Lattner2007-04-201-2/+2
| | | | llvm-svn: 36288
* rename JIT::state -> JIT::jitstate to avoid shadowing ExecutionEngine::stateChris Lattner2007-04-202-8/+8
| | | | llvm-svn: 36286
* Implement PR1240Anton Korobeynikov2007-03-061-2/+3
| | | | llvm-svn: 34959
* Simplify code as a result of the change in GenericValue to have a singleReid Spencer2007-03-061-28/+15
| | | | | | integer field of type APInt instead of different sized integer fields. llvm-svn: 34952
* Deal with error handling better.Reid Spencer2007-03-032-3/+10
| | | | llvm-svn: 34887
* Fix PR1216 by cleaning up the ownership of JITResolver.Chris Lattner2007-02-242-29/+42
| | | | llvm-svn: 34552
* Generalize TargetData strings, to support more interesting forms of data.Chris Lattner2007-02-141-1/+1
| | | | | | Patch by Scott Michel. llvm-svn: 34266
* eliminate vector-related allocationsChris Lattner2007-02-131-2/+2
| | | | llvm-svn: 34223
* For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoidReid Spencer2007-01-302-4/+4
| | | | | | confusion with external linkage types. llvm-svn: 33663
* Moved disassembler to libSystemAnton Korobeynikov2007-01-231-10/+2
| | | | llvm-svn: 33461
* Teach TargetData to handle 'preferred' alignment for each target, and useChris Lattner2007-01-201-1/+1
| | | | | | these alignment amounts to align scalars when we can. Patch by Scott Michel! llvm-svn: 33409
* DOUT still evaluates side effects, even though it doesn't print. This meansChris Lattner2007-01-201-0/+2
| | | | | | | that disassembleBuffer will be called even if NDEBUG, but the result will be ignored. llvm-svn: 33408
* fix build on amd64Andrew Lenharth2007-01-191-1/+1
| | | | llvm-svn: 33367
* Adding disassembler interface and external hook to udis86 library.Anton Korobeynikov2007-01-191-1/+14
| | | | llvm-svn: 33358
* For PR1064:Reid Spencer2007-01-121-17/+31
| | | | | | | | | | | | | | | | | | | | | | | 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
* Implement review feedback for the ConstantBool->ConstantInt merge. ChrisReid Spencer2007-01-121-1/+1
| | | | | | | | 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
* Rename BoolTy as Int1Ty. Patch by Sheng Zhou.Reid Spencer2007-01-111-3/+3
| | | | llvm-svn: 33076
OpenPOWER on IntegriCloud