summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86JITInfo.h
Commit message (Collapse)AuthorAgeFilesLines
* Reinstate "Nuke the old JIT."Eric Christopher2014-09-021-79/+0
| | | | | | | | Approved by Jim Grosbach, Lang Hames, Rafael Espindola. This reinstates commits r215111, 215115, 215116, 215117, 215136. llvm-svn: 216982
* Canonicalize header guards into a common format.Benjamin Kramer2014-08-131-2/+2
| | | | | | | | | | Add header guards to files that were missing guards. Remove #endif comments as they don't seem common in LLVM (we can easily add them back if we decide they're useful) Changes made by clang-tidy with minor tweaks. llvm-svn: 215558
* Temporarily Revert "Nuke the old JIT." as it's not quite ready toEric Christopher2014-08-071-0/+79
| | | | | | | | | | | be deleted. This will be reapplied as soon as possible and before the 3.6 branch date at any rate. Approved by Jim Grosbach, Lang Hames, Rafael Espindola. This reverts commits r215111, 215115, 215116, 215117, 215136. llvm-svn: 215154
* Nuke the old JIT.Rafael Espindola2014-08-071-79/+0
| | | | | | | | | I am sure we will be finding bits and pieces of dead code for years to come, but this is a good start. Thanks to Lang Hames for making MCJIT a good replacement! llvm-svn: 215111
* Move all of the x86 subtarget initialized variables down into the x86 subtargetEric Christopher2014-06-091-1/+1
| | | | | | from the x86 target machine. Should be no functional change. llvm-svn: 210479
* Replace the use of TargetMachine with a tiny bool variable.Eric Christopher2014-06-061-4/+2
| | | | llvm-svn: 210386
* [C++11] Add 'override' keyword to virtual methods that override their base ↵Craig Topper2014-03-091-11/+11
| | | | | | class. llvm-svn: 203378
* Move all of the header files which are involved in modelling the LLVM IRChandler Carruth2013-01-021-1/+1
| | | | | | | | | | | | | | | | | | | | | into their new header subdirectory: include/llvm/IR. This matches the directory structure of lib, and begins to correct a long standing point of file layout clutter in LLVM. There are still more header files to move here, but I wanted to handle them in separate commits to make tracking what files make sense at each layer easier. The only really questionable files here are the target intrinsic tablegen files. But that's a battle I'd rather not fight today. I've updated both CMake and Makefile build systems (I think, and my tests think, but I may have missed something). I've also re-sorted the includes throughout the project. I'll be committing updates to Clang, DragonEgg, and Polly momentarily. llvm-svn: 171366
* Sort includes for all of the .h files under the 'lib' tree. These wereChandler Carruth2012-12-041-1/+1
| | | | | | | | | | missed in the first pass because the script didn't yet handle include guards. Note that the script is now able to handle all of these headers without manual edits. =] llvm-svn: 169224
* Whitespace.Chad Rosier2012-08-011-1/+1
| | | | llvm-svn: 161122
* Emacs-tag and some comment fix for all ARM, CellSPU, Hexagon, MBlaze, ↵Jia Liu2012-02-181-1/+1
| | | | | | MSP430, PPC, PTX, Sparc, X86, XCore. llvm-svn: 150878
* * Move stub allocation inside the JITEmitter, instead of exposing aJeffrey Yasskin2009-11-231-7/+5
| | | | | | | | | | | | | | way for each TargetJITInfo subclass to allocate its own stubs. This means stubs aren't as exactly-sized anymore, but it lets us get rid of TargetJITInfo::emitFunctionStubAtAddr(), which lets ARM and PPC support the eager JIT, fixing http://llvm.org/PR4816. * Rename the JITEmitter's stub creation functions to describe the kind of stub they create. So far, all of them create lazy-compilation stubs, but they sometimes get used when far-call stubs are needed. Fixing http://llvm.org/PR5201 will involve fixing this. llvm-svn: 89715
* X86JITInfo::getLazyResolverFunction() should not read cpu id to determine ↵Evan Cheng2009-09-031-4/+3
| | | | | | | | whether sse is available. Just use consult subtarget. No functionality changes. llvm-svn: 80880
* First patch in the direction of splitting MachineCodeEmitter in two subclasses:Bruno Cardoso Lopes2009-05-301-6/+7
| | | | | | JITCodeEmitter and ObjectCodeEmitter. No functional changes yet. Patch by Aaron Gray llvm-svn: 72631
* Add support to the JIT for true non-lazy operation. When a call to a functionNate Begeman2009-02-181-0/+6
| | | | | | | | | | | | | | | | | | | | that has not been JIT'd yet, the callee is put on a list of pending functions to JIT. The call is directed through a stub, which is updated with the address of the function after it has been JIT'd. A new interface for allocating and updating empty stubs is provided. Add support for removing the ModuleProvider the JIT was created with, which would otherwise invalidate the JIT's PassManager, which is initialized with the ModuleProvider's Module. Add support under a new ExecutionEngine flag for emitting the infomration necessary to update Function and GlobalVariable stubs after JITing them, by recording the address of the stub and the name of the GlobalValue. This allows code to be copied from one address space to another, where libraries may live at different virtual addresses, and have the stubs updated with their new correct target addresses. llvm-svn: 64906
* Fix MachineCodeEmitter to use uintptr_t instead of intptr_t. This avoids ↵Evan Cheng2008-12-101-4/+4
| | | | | | some overflow issues. Patch by Thomas Jablin. llvm-svn: 60828
* Rename isGVNonLazyPtr to isIndirectSym to reflect how it will be used.Evan Cheng2008-11-101-5/+5
| | | | llvm-svn: 58949
* Rename isGVLazyPtr to isGVNonLazyPtr relocation. This represents Mac OS XEvan Cheng2008-11-051-4/+5
| | | | | | indirect gv reference. Please don't call it lazy. llvm-svn: 58746
* Support for allocation of TLS variables in the JIT. Allocation of a globalNicolas Geoffray2008-10-251-1/+10
| | | | | | | | variable is moved to the execution engine. The JIT calls the TargetJITInfo to allocate thread local storage. Currently, only linux/x86 knows how to allocate thread local global variables. llvm-svn: 58142
* Correlate stubs with functions in JIT: when emitting a stub, the JIT tells ↵Nicolas Geoffray2008-04-161-3/+6
| | | | | | | | the memory manager which function the stub will resolve. llvm-svn: 49814
* Add explicit keywords.Dan Gohman2008-03-251-1/+1
| | | | llvm-svn: 48801
* X86 JIT PIC jumptable support.Evan Cheng2008-01-051-0/+10
| | | | llvm-svn: 45616
* X86 PIC JIT support fixes: encoding bugs, add lazy pointer stubs support.Evan Cheng2008-01-041-0/+4
| | | | llvm-svn: 45575
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45418
* Remove unneeded forward declsChris Lattner2006-11-151-1/+0
| | | | llvm-svn: 31754
* Completely rearchitect the interface between targets and the pass manager.Chris Lattner2006-09-041-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | 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
* Resolve BB references with relocation.Evan Cheng2006-07-271-2/+0
| | | | llvm-svn: 29351
* - Refactor the code that resolve basic block references to a TargetJITInfoEvan Cheng2006-07-251-0/+2
| | | | | | | | | | 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
* Added getTargetLowering() to TargetMachine. Refactored targets to support this.Evan Cheng2006-03-131-3/+3
| | | | llvm-svn: 26742
* turn off GOT on archs that didn't use it (not that it appeard to harm them ↵Andrew Lenharth2005-07-291-1/+1
| | | | | | much with it on) llvm-svn: 22553
* update interfaceAndrew Lenharth2005-07-221-1/+1
| | | | llvm-svn: 22498
* * Remove trailing whitespaceMisha Brukman2005-04-211-4/+4
| | | | | | * Convert tabs to spaces llvm-svn: 21426
* We implement these interfacesChris Lattner2004-11-201-5/+13
| | | | llvm-svn: 18065
* Clean up a lot of the code I added yesterday by exposing the IntrinsicLoweringChris Lattner2003-12-281-3/+2
| | | | | | implementation from the TargetMachine directly. llvm-svn: 10636
* implement support for the intrinsic lowering functionalityChris Lattner2003-12-281-1/+4
| | | | llvm-svn: 10629
* Rip JIT specific stuff out of TargetMachine, as per PR176Chris Lattner2003-12-201-0/+47
llvm-svn: 10542
OpenPOWER on IntegriCloud