summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86TargetMachine.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Overhaul my earlier submission due to feedback. It's a large patch, but most ofBill Wendling2009-02-241-3/+3
| | | | | | | | | | | | them are generic changes. - Use the "fast" flag that's already being passed into the asm printers instead of shoving it into the DwarfWriter. - Instead of calling "MI->getParent()->getParent()" for every MI, set the machine function when calling "runOnMachineFunction" in the asm printers. llvm-svn: 65379
* Make a comment a doxygen comment.Dan Gohman2009-02-071-4/+4
| | | | llvm-svn: 63988
* Fix build with gcc-4.4: it doesn't like PICStyleDuncan Sands2008-11-281-5/+5
| | | | | | being both a namespace and a variable name. llvm-svn: 60208
* Move the code that inserts X87 FP_REG_KILL instructions from aDan Gohman2008-11-121-0/+3
| | | | | | | | special-purpose hook to a new pass. Also, add check to see if any x87 virtual registers are used, to avoid doing any work in the common case that no x87 code is needed. llvm-svn: 59190
* Move the code that adds the DeadMachineInstructionElimPass fromDan Gohman2008-10-251-0/+5
| | | | | | | | | | | | target-independent code to target-specific code. This prevents it from running on targets that aren't using fast-isel. In addition to saving compile time, this addresses the problem that not all targets are prepared for it. In order to use this pass, all instructions must declare all their fixed uses and defs of physical registers. llvm-svn: 58144
* Teach DAGCombine to fold constant offsets into GlobalAddress nodes,Dan Gohman2008-10-181-0/+9
| | | | | | | | | | | | | | | | | | | | | | and add a TargetLowering hook for it to use to determine when this is legal (i.e. not in PIC mode, etc.) This allows instruction selection to emit folded constant offsets in more cases, such as the included testcase, eliminating the need for explicit arithmetic instructions. This eliminates the need for the C++ code in X86ISelDAGToDAG.cpp that attempted to achieve the same effect, but wasn't as effective. Also, fix handling of offsets in GlobalAddressSDNodes in several places, including changing GlobalAddressSDNode's offset from int to int64_t. The Mips, Alpha, Sparc, and CellSPU targets appear to be unaware of GlobalAddress offsets currently, so set the hook to false on those targets. llvm-svn: 57748
* Fix command-line option printing to print two spaces where needed,Dan Gohman2008-10-141-2/+2
| | | | | | | | | instead of requiring all "short description" strings to begin with two spaces. This makes these strings less mysterious, and it fixes some cases where short description strings mistakenly did not begin with two spaces. llvm-svn: 57521
* Factor out the code for determining when symblic addressesDan Gohman2008-09-261-0/+9
| | | | | | | | | require RIP-relative addressing and use it to fix a bug in X86FastISel in x86-64 PIC mode, where it was trying to use base/index registers with RIP-relative addresses. This fixes a bunch of x86-64 testsuite failures. llvm-svn: 56676
* Reapply 56585:56589 with proper fix for some gcc versionsAnton Korobeynikov2008-09-251-1/+1
| | | | llvm-svn: 56621
* Temporarily backing out 56585:56589 to unbreak the build.Evan Cheng2008-09-251-1/+1
| | | | llvm-svn: 56607
* Use crazy template-based inheritance instead of virtual one.Anton Korobeynikov2008-09-241-1/+1
| | | | llvm-svn: 56585
* Use raw_ostream throughout the AsmPrinter.Owen Anderson2008-08-211-3/+4
| | | | llvm-svn: 55092
* Move X86 assembler printers into separate directory. This allows JIT-only ↵Anton Korobeynikov2008-08-171-5/+17
| | | | | | users not to link it in (use 'x86codegen' llvm-config arg for this) llvm-svn: 54886
* Make x86-64 JIT changes Darwin-specific.Dale Johannesen2008-08-121-5/+11
| | | | llvm-svn: 54700
* Some fixes for x86-64 JIT. Make it use small codeDale Johannesen2008-08-111-3/+5
| | | | | | | | | | | | model, except for external calls; this makes addressing modes PC-relative. Incomplete. The assertion at the top of Emitter::runOnMachineFunction was obviously bogus (always true) so I removed it. If someone knows what the correct test should be to cover all the various targets, please fix. llvm-svn: 54656
* Split X86TargetAsmInfo into 4 subtarget-specific classesAnton Korobeynikov2008-07-091-1/+16
| | | | llvm-svn: 53299
* Remove unnecessary #includes.Dan Gohman2008-06-221-1/+0
| | | | llvm-svn: 52613
* X86CodeEmitter should not set PIC style to None at initialization time. This ↵Evan Cheng2008-05-221-3/+1
| | | | | | will break codegen if relocation model is changed to PIC_ later. llvm-svn: 51455
* Clean up the use of static and anonymous namespaces. This turned upDan Gohman2008-05-131-7/+5
| | | | | | | several things that were neither in an anonymous namespace nor static but not intended to be global. llvm-svn: 51017
* Be over-conservative: scan for all used virtual registers and calculate ↵Anton Korobeynikov2008-04-231-0/+2
| | | | | | maximal stack alignment in assumption, that there will be spill of vector register. llvm-svn: 50167
* Add X86 Maximal Stack Alignment Calculator Pass before RAAnton Korobeynikov2008-04-231-0/+5
| | | | llvm-svn: 50166
* Provide a JIT selector on win64Anton Korobeynikov2008-03-231-1/+1
| | | | llvm-svn: 48704
* Hack out the PIC mode on Win64 targets. This needs to be investigated later.Anton Korobeynikov2008-03-231-1/+3
| | | | llvm-svn: 48703
* Use PassManagerBase instead of FunctionPassManager for functionsDan Gohman2008-03-111-5/+5
| | | | | | | | that merely add passes. This allows them to be used with either FunctionPassManager or PassManager, or even with a custom new kind of pass manager. llvm-svn: 48256
* Added option -align-loops=<true/false> to disable loop aligner pass.Evan Cheng2008-02-281-7/+0
| | | | llvm-svn: 47736
* Add a quick and dirty "loop aligner pass". x86 uses it to align its loops to ↵Evan Cheng2008-02-281-0/+7
| | | | | | 16-byte boundaries. llvm-svn: 47703
* Remove bunch of gcc 4.3-related warnings from TargetAnton Korobeynikov2008-02-201-3/+5
| | | | llvm-svn: 47369
* Minor fix to enable x86-64 pic jit (still fails for other reasons).Evan Cheng2008-01-081-2/+3
| | | | llvm-svn: 45734
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45418
* Preliminary PIC JIT support for X86 (32-bit) / Darwin.Evan Cheng2007-12-221-1/+3
| | | | llvm-svn: 45313
* Oops.Evan Cheng2007-12-221-2/+1
| | | | llvm-svn: 45312
* Allow JIT with non-static relocation model.Evan Cheng2007-12-221-1/+2
| | | | llvm-svn: 45304
* Move lengthy conditional down 1 level per review comment.Dale Johannesen2007-08-061-5/+1
| | | | llvm-svn: 40878
* Make x86 long double alignment 32 for everything butDale Johannesen2007-08-031-1/+3
| | | | | | Darwin (which makes size within a struct==96) llvm-svn: 40796
* long double patch 2 of N. Handle it in TargetData.Dale Johannesen2007-08-031-2/+2
| | | | | | | (I've tried to get the info right for all targets, but I'm not expert on all of them - check yours.) llvm-svn: 40792
* Added -print-emitted-asm to print out JIT generated asm to cerr.Evan Cheng2007-07-201-2/+7
| | | | llvm-svn: 40123
* The various "getModuleMatchQuality" implementations should returnChris Lattner2007-07-091-0/+5
| | | | | | zero if they see a target triple they don't understand. llvm-svn: 38463
* 80 col. violation.Evan Cheng2007-02-231-1/+2
| | | | llvm-svn: 34520
* Generalize TargetData strings, to support more interesting forms of data.Chris Lattner2007-02-141-2/+2
| | | | | | Patch by Scott Michel. llvm-svn: 34266
* Moved the MachOWriter and ELFWriter out of the Target/* files. Placed theBill Wendling2007-02-081-9/+6
| | | | | | | | definition of it into the CodeGen library. This is so that a backend doesn't necessarily add in these writers if it doesn't use them (like in the lli program). llvm-svn: 34034
* Double and long preferred alignment is 8 byte.Evan Cheng2007-01-221-2/+2
| | | | llvm-svn: 33446
* Teach TargetData to handle 'preferred' alignment for each target, and useChris Lattner2007-01-201-2/+2
| | | | | | these alignment amounts to align scalars when we can. Patch by Scott Michel! llvm-svn: 33409
* - Target PIC style is no longer affected by relocation model.Evan Cheng2007-01-181-15/+9
| | | | | | | | - In x86-64 mode, symbols with external linkage (not just symbols which are defined externally) requires GOT indirect reference. - Stylistic code clean up. llvm-svn: 33345
* Revert patch.Bill Wendling2007-01-171-5/+0
| | | | llvm-svn: 33298
* Create the specified TargetObjInfo and use it.Bill Wendling2007-01-171-0/+5
| | | | llvm-svn: 33291
* * PIC codegen for X86/Linux has been implementedAnton Korobeynikov2007-01-121-0/+21
| | | | | | | | * PIC-aware internal structures in X86 Codegen have been refactored * Visibility (default/weak) has been added * Docs fixes (external weak linkage, visibility, formatting) llvm-svn: 33136
* Really big cleanup.Anton Korobeynikov2007-01-031-1/+1
| | | | | | | | | | | - New target type "mingw" was introduced - Same things for both mingw & cygwin are marked as "cygming" (as in gcc) - .lcomm is supported here, so allow LLVM to use it - Correctly use underscored versions of setjmp & _longjmp for both mingw & cygwin llvm-svn: 32833
* Refactored JIT codegen for mingw32. Now we're using standart relocationAnton Korobeynikov2006-12-221-4/+1
| | | | | | type for distinguish JIT & non-JIT instead of "dirty" hacks :) llvm-svn: 32745
* Fixed dllimported symbols support during JIT'ing. JIT on mingw32Anton Korobeynikov2006-12-201-0/+3
| | | | | | | platform should be more or less workable. At least, sim is running fine under lli :) llvm-svn: 32711
* The x86-64 target machine should be used for amd64-* target triples.Chris Lattner2006-12-191-0/+5
| | | | llvm-svn: 32678
OpenPOWER on IntegriCloud