summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86Subtarget.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Tevert part of the x86 subtarget logic changes: when -march=x86-64Dan Gohman2009-02-031-4/+5
| | | | | | | | | | | | | | | is given, override the subtarget settings and enable 64-bit support. This restores the earlier behavior, and fixes regressions on Non-64-bit-capable x86-32 hosts. This isn't necessarily the best approach, but the most obvious alternative is to require -mcpu=x86-64 or -mattr=+64bit to be used with -march=x86-64 when the host doesn't have 64-bit support. This makes things little more consistent, but it's less convenient, and it has the practical drawback of requiring lots of test changes, so I opted for the above approach for now. llvm-svn: 63642
* Change Feature64Bit to not imply FeatureSSE2. All x86-64 hardware hasDan Gohman2009-02-031-10/+9
| | | | | | | | | | | | | | SSE2, however it's possible to disable SSE2, and the subtarget support code thinks that if 64-bit implies SSE2 and SSE2 is disabled then 64-bit should also be disabled. Instead, just mark all the 64-bit subtargets as explicitly supporting SSE2. Also, move the code that makes -march=x86-64 enable 64-bit support by default to only apply when there is no explicit subtarget. If you need to specify a subtarget and you want 64-bit code, you'll need to select a subtarget that supports 64-bit code. llvm-svn: 63575
* Only force SSE level if it is not correct.Torok Edwin2009-02-021-3/+10
| | | | | | Add an assert to check HasX86_64 status. llvm-svn: 63552
* remove #if 0 code on Bill's request.Torok Edwin2009-02-021-4/+0
| | | | llvm-svn: 63542
* Implement -mno-sse: if SSE is disabled on x86-64, don't store XMM on stack forTorok Edwin2009-02-011-1/+1
| | | | | | var-args, and don't allow FP return values llvm-svn: 63495
* should have removed the + when manually applying a patch!Torok Edwin2009-01-251-2/+2
| | | | llvm-svn: 62973
* revert this patch for now, because Codegen does still want to generate SSE code,Torok Edwin2009-01-251-0/+4
| | | | | | for example in the case of va-args. XFAIL associated tests. llvm-svn: 62972
* If user explicitly asks not to use SSE, don't force it. This fixes LLVM part ↵Torok Edwin2009-01-251-2/+0
| | | | | | of PR3402. llvm-svn: 62967
* Add the private linkage.Rafael Espindola2009-01-151-2/+2
| | | | llvm-svn: 62279
* Atom and Core i7 do not have same model number after all.Evan Cheng2009-01-051-4/+3
| | | | llvm-svn: 61686
* Add Intel processors core i7 and atom.Evan Cheng2009-01-031-1/+2
| | | | llvm-svn: 61603
* Fix PR3210: Detect more Intel processors. Patch by Torok Edwin.Evan Cheng2009-01-031-2/+15
| | | | llvm-svn: 61602
* Do not isel load folding bt instructions for pentium m, core, core2, and AMD ↵Evan Cheng2009-01-021-11/+25
| | | | | | processors. These are significantly slower than a load followed by a bt of a register. llvm-svn: 61557
* Fix x86 CPU id detection to identify Penryn (and future processors).Evan Cheng2009-01-021-2/+11
| | | | llvm-svn: 61556
* Add initial support for back-scheduling address computations,Dan Gohman2008-12-161-0/+11
| | | | | | | especially in the case of addresses computed from loop induction variables. llvm-svn: 61075
* Re-apply 60689 now my head is screwed on right.Evan Cheng2008-12-081-0/+2
| | | | llvm-svn: 60711
* Revert 60689. It caused many regressions on Darwin targets.Dan Gohman2008-12-081-3/+1
| | | | llvm-svn: 60705
* Perform cheap checks first.Evan Cheng2008-12-081-1/+3
| | | | llvm-svn: 60689
* Make LoopStrengthReduce smarter about hoisting things out ofDale Johannesen2008-12-051-1/+17
| | | | | | | | | | | loops when they can be subsumed into addressing modes. Change X86 addressing mode check to realize that some PIC references need an extra register. (I believe this is correct for Linux, if not, I'm sure someone will tell me.) llvm-svn: 60608
* Re-did 60519. It turns out Darwin's handling of hidden visibility symbols ↵Evan Cheng2008-12-051-4/+8
| | | | | | are a bit more complicate than I expected. Both declarations and weak definitions still need a stub indirection. However, the stubs are in data section and they contain the addresses of the actual symbols. llvm-svn: 60571
* Temporarily revert r60519. It was causing a bootstrap failure:Bill Wendling2008-12-041-3/+0
| | | | | | | | | | | | | | | | /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/xgcc -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/ -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.5.0/bin/ -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.5.0/lib/ -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.5.0/include -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.5.0/sys-include -DHAVE_CONFIG_H -I. -I../../../llvm-gcc.src/libgomp -I. -I../../../llvm-gcc.src/libgomp/config/posix -I../../../llvm-gcc.src/libgomp -Wall -pthread -Werror -O2 -g -O2 -MT barrier.lo -MD -MP -MF .deps/barrier.Tpo -c ../../../llvm-gcc.src/libgomp/barrier.c -fno-common -DPIC -o .libs/barrier.o checking for sys/file.h... /var/folders/zG/zGE-ZJOGFiGjv0B5cs5oYE+++TM/-Tmp-//cc34Jg5P.s:13:non-relocatable subtraction expression, "_gomp_tls_key" minus "L1$pb" /var/folders/zG/zGE-ZJOGFiGjv0B5cs5oYE+++TM/-Tmp-//cc34Jg5P.s:13:symbol: "_gomp_tls_key" can't be undefined in a subtraction expression make[4]: *** [barrier.lo] Error 1 make[4]: *** Waiting for unfinished jobs.... /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/xgcc -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/ -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.5.0/bin/ -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.5.0/lib/ -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.5.0/include -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.5.0/sys-include -DHAVE_CONFIG_H -I. -I../../../llvm-gcc.src/libgomp -I. -I../../../llvm-gcc.src/libgomp/config/posix -I../../../llvm-gcc.src/libgomp -Wall -pthread -Werror -O2 -g -O2 -MT alloc.lo -MD -MP -MF .deps/alloc.Tpo -c ../../../llvm-gcc.src/libgomp/alloc.c -o alloc.o >/dev/null 2>&1 yes checking for sys/param.h... make[3]: *** [all-recursive] Error 1 make[2]: *** [all] Error 2 make[1]: *** [all-target-libgomp] Error 2 make[1]: *** Waiting for unfinished jobs.... llvm-svn: 60527
* Visibility hidden GVs do not require extra load of symbol address from the ↵Evan Cheng2008-12-041-0/+3
| | | | | | GOT or non-lazy-ptr. llvm-svn: 60519
* Fix build with gcc-4.4: it doesn't like PICStyleDuncan Sands2008-11-281-1/+1
| | | | | | being both a namespace and a variable name. llvm-svn: 60208
* 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
* Just don't transform this memset into "bzero" if no-builtin is specified.Bill Wendling2008-09-301-2/+2
| | | | llvm-svn: 56888
* Add the new `-no-builtin' flag. This flag is meant to mimic the GCCBill Wendling2008-09-301-8/+6
| | | | | | | | | `-fno-builtin' flag. Currently, it's used to replace "memset" with "_bzero" instead of "__bzero" on Darwin10+. This arguably violates the meaning of this flag, but is currently sufficient. The meaning of this flag should become more specific over time. llvm-svn: 56885
* x86-64 PIC JIT fixes: do not generate the extra load for external GV's.Evan Cheng2008-07-161-1/+2
| | | | llvm-svn: 53661
* Revert accidentially added stuffAnton Korobeynikov2008-07-091-2/+1
| | | | llvm-svn: 53321
* Switch to new section name handling facilityAnton Korobeynikov2008-07-091-1/+2
| | | | llvm-svn: 53316
* Back out 53091 for now.Evan Cheng2008-07-031-2/+1
| | | | llvm-svn: 53109
* llvm-gcc sometimes marks external declarations hidden, because intializers areAnton Korobeynikov2008-07-031-1/+2
| | | | | | | processed separately. Honour such situation and emit PIC relocations properly in such case. llvm-svn: 53091
* Don't use the GOT for symbols that are not externally visible.Rafael Espindola2008-06-021-3/+6
| | | | llvm-svn: 51865
* Add CommonLinkage; currently tentative definitionsDale Johannesen2008-05-141-0/+1
| | | | | | | | | | are represented as "weak", but there are subtle differences in some cases on Darwin, so we need both. The intent is that "common" will behave identically to "weak" unless somebody changes their target to do something else. No functional change as yet. llvm-svn: 51118
* Clean up the use of static and anonymous namespaces. This turned upDan Gohman2008-05-131-1/+1
| | | | | | | several things that were neither in an anonymous namespace nor static but not intended to be global. llvm-svn: 51017
* Added addition atomic instrinsics and, or, xor, min, and max.Mon P Wang2008-05-051-1/+1
| | | | llvm-svn: 50663
* Fix IsLinux being uninitialized on non-Linux targets.Dan Gohman2008-05-051-0/+1
| | | | llvm-svn: 50660
* Use a dedicated IsLinux flag instead of an ELFLinux TargetType.Dan Gohman2008-05-051-2/+5
| | | | llvm-svn: 50649
* Add AsmPrinter support for emitting a directive to declare thatDan Gohman2008-05-051-0/+5
| | | | | | | | | the code being generated does not require an executable stack. Also, add target-specific code to make use of this on Linux on x86. llvm-svn: 50634
* Make stack alignment options global for all targetsAnton Korobeynikov2008-04-231-4/+1
| | | | llvm-svn: 50157
* Provide ABI-correct stack alignmentAnton Korobeynikov2008-04-231-5/+3
| | | | llvm-svn: 50154
* Initialize X863DNowLevel.Evan Cheng2008-04-161-0/+1
| | | | llvm-svn: 49808
* Provide option for stack alignment overrideAnton Korobeynikov2008-04-121-0/+7
| | | | llvm-svn: 49593
* Speculatively micro-optimize memory-zeroing calls on Darwin 10.Dan Gohman2008-04-011-0/+14
| | | | llvm-svn: 49048
* Honour built-in defines on win64 targets for automatically subtarget recognize.Anton Korobeynikov2008-03-221-2/+3
| | | | | | Force stack alignment to 16 bytes on win targets. llvm-svn: 48695
* Recognize "windows" in target triple, not only "win32"Anton Korobeynikov2008-03-221-0/+2
| | | | llvm-svn: 48694
* Remove bunch of gcc 4.3-related warnings from TargetAnton Korobeynikov2008-02-201-1/+2
| | | | llvm-svn: 47369
* Remove warning about 64-bit code on processorDale Johannesen2008-02-151-6/+0
| | | | | | that doesn't support it. Per Chris. llvm-svn: 47162
* Fix a x86-64 codegen deficiency. Allow gv + offset when using rip addressing ↵Evan Cheng2008-02-071-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mode. Before: _main: subq $8, %rsp leaq _X(%rip), %rax movsd 8(%rax), %xmm1 movss _X(%rip), %xmm0 call _t xorl %ecx, %ecx movl %ecx, %eax addq $8, %rsp ret Now: _main: subq $8, %rsp movsd _X+8(%rip), %xmm1 movss _X(%rip), %xmm0 call _t xorl %ecx, %ecx movl %ecx, %eax addq $8, %rsp ret Notice there is another idiotic codegen issue that needs to be fixed asap: xorl %ecx, %ecx movl %ecx, %eax llvm-svn: 46850
* SSE 4.1 Intrinsics and detectionNate Begeman2008-02-031-0/+2
| | | | llvm-svn: 46681
* Enable PIC codegen on x86-64/linuxAnton Korobeynikov2008-01-201-1/+1
| | | | llvm-svn: 46198
OpenPOWER on IntegriCloud