summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix logic for not emitting no-dead-strip for someDale Johannesen2008-09-094-0/+4
| | | | | | | | | | objects in llvm.used (thanks Anton). Makes visible the magic 'l' prefix for symbols on Darwin which are to be passed through the assembler, then removed at linktime (previously all references to this had been hidden in the ObjC FE code, oh well). llvm-svn: 55973
* Reapply 55901: Drop unused variableAnton Korobeynikov2008-09-081-1/+0
| | | | llvm-svn: 55957
* Reapply 55900: We do support EH on x86-64!Anton Korobeynikov2008-09-081-2/+1
| | | | llvm-svn: 55956
* Reapply 55899: First draft of EH support on x86/64-linuxAnton Korobeynikov2008-09-083-32/+60
| | | | | | | Now with fix, which prevents subtle codegen bug to trigger on darwin. No fix for bug though, it's still there. llvm-svn: 55955
* Reapply blindly reverted 55898: Implement FRAME_TO_ARGS_OFFSET for x86-64Anton Korobeynikov2008-09-081-11/+7
| | | | llvm-svn: 55954
* Reverting r55898 as well. This wasn't reverted in the original revert...Bill Wendling2008-09-081-7/+11
| | | | llvm-svn: 55938
* Accidental commit of partial 'stack canaries' codeBill Wendling2008-09-081-16/+0
| | | | llvm-svn: 55937
* Reverting r55898 to r55909. One of these patches was causing an ICE during ↵Bill Wendling2008-09-085-61/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the full bootstrap on Darwin: /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.4.0/bin/ -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/lib/ -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/include -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/sys-include -O2 -O2 -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -pipe -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include -DSHARED -m64 -DL_negdi2 -c ../../llvm-gcc.src/gcc/libgcc2.c -o libgcc/x86_64/_negdi2_s.o Assertion failed: (TargetRegisterInfo::isVirtualRegister(regA) && TargetRegisterInfo::isVirtualRegister(regB) && "cannot update physical register live information"), function runOnMachineFunction, file /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/lib/CodeGen/TwoAddressInstructionPass.cpp, line 311. /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.4.0/bin/ -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/lib/ -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/include -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.4.0/sys-include -O2 -O2 -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -pipe -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include -DSHARED -m64 -DL_lshrdi3 -c ../../llvm-gcc.src/gcc/libgcc2.c -o libgcc/x86_64/_lshrdi3_s.o ../../llvm-gcc.src/gcc/unwind-dw2.c:1527: internal compiler error: Abort trap Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://developer.apple.com/bugreporter> for instructions. {standard input}:unknown:Undefined local symbol LBB21_11 {standard input}:unknown:Undefined local symbol LBB21_12 {standard input}:unknown:Undefined local symbol LBB21_13 {standard input}:unknown:Undefined local symbol LBB21_8 llvm-svn: 55928
* Handle calls which produce i1 results: promote to i8 but and it with 1 to ↵Evan Cheng2008-09-081-3/+18
| | | | | | get the low bit. llvm-svn: 55925
* i128 and f80 are implemented for x86-64 now.Dan Gohman2008-09-081-4/+0
| | | | llvm-svn: 55920
* Fix copy+pastos in comments.Dan Gohman2008-09-081-2/+2
| | | | llvm-svn: 55918
* Delete an unused variable.Dan Gohman2008-09-081-1/+0
| | | | llvm-svn: 55915
* Drop unused variableAnton Korobeynikov2008-09-081-1/+0
| | | | llvm-svn: 55901
* We do support EH on x86-64!Anton Korobeynikov2008-09-081-2/+1
| | | | llvm-svn: 55900
* First draft of EH support on x86/64-linuxAnton Korobeynikov2008-09-083-32/+60
| | | | llvm-svn: 55899
* Implement FRAME_TO_ARGS_OFFSET for x86-64Anton Korobeynikov2008-09-081-11/+7
| | | | llvm-svn: 55898
* Add support to extend call operands when needed. Enable x86 fastisel call ↵Evan Cheng2008-09-081-24/+33
| | | | | | support. llvm-svn: 55891
* Initial fastisel call support for C, Fast, and X86_FastCall calling ↵Evan Cheng2008-09-071-42/+308
| | | | | | | | conventions. It's meant to handle "simple" calls, i.e. no byval, structret, etc. It doesn't support multi-result returns either. Not yet turned on, it needs to support sext / zext of arguments and result. llvm-svn: 55882
* Some code clean up.Evan Cheng2008-09-071-26/+21
| | | | llvm-svn: 55881
* Handle x86 truncate to i8 with target hook for now.Evan Cheng2008-09-071-0/+38
| | | | llvm-svn: 55877
* Fix constant pool loads, and remove broken versions of addConstantPoolReference.Owen Anderson2008-09-065-45/+10
| | | | llvm-svn: 55868
* Fix the X86 addConstantPoolReference, which had the operands in the wrong order.Owen Anderson2008-09-061-1/+2
| | | | llvm-svn: 55867
* Fix for PR2687: Add patterns to match sint_to_fp and fp_to_sint for <2 x Eli Friedman2008-09-051-0/+4
| | | | | | | | | i32>. This is a little messy, but it works. We should really get rid of the intrinsics, though, since they map perfectly well to standard LLVM instructions. llvm-svn: 55864
* Fix X86FastISel's shift and select code to reject illegal types.Dan Gohman2008-09-051-1/+9
| | | | llvm-svn: 55857
* Fix the opcodes used by X86FastISel for shifts and conditional moves.Dan Gohman2008-09-051-11/+11
| | | | llvm-svn: 55855
* Factor out code that emits load and store instructions.Evan Cheng2008-09-051-111/+138
| | | | llvm-svn: 55854
* Rename method.Owen Anderson2008-09-051-3/+3
| | | | llvm-svn: 55853
* X86FastISel support for shifts and conditional moves.Dan Gohman2008-09-051-0/+99
| | | | llvm-svn: 55844
* If SSE2 is available, x86 should pass first 3 f32/f64 arguments in XMM ↵Evan Cheng2008-09-051-0/+6
| | | | | | registers for fastcc calls. llvm-svn: 55840
* Check a comparion's operand type for legality beforeDan Gohman2008-09-051-4/+4
| | | | | | expanding its operands. llvm-svn: 55820
* Fix X86FastISel code for comparisons and conditional branchesDan Gohman2008-09-051-1/+9
| | | | | | | to check the result of getRegForValue before using it, and to check for illegal operand types. llvm-svn: 55819
* X86FastISel support for conditional branches.Dan Gohman2008-09-051-1/+39
| | | | llvm-svn: 55816
* Add initial support for selecting constant materializations that require ↵Owen Anderson2008-09-051-0/+88
| | | | | | | | constant pool loads on X86 in fast isel. This isn't actually used yet. llvm-svn: 55814
* X86FastISel support for ICmpInst and FCmpInst.Dan Gohman2008-09-041-0/+139
| | | | llvm-svn: 55811
* For whatever the reason, x86 CallingConv::Fast (i.e. fastcc) was not passing ↵Evan Cheng2008-09-042-0/+19
| | | | | | scalar arguments in registers. This patch defines a new fastcc CC which is slightly different from the FastCall CC. In addition to passing integer arguments in ECX and EDX, it also specify doubles are passed in 8-byte slots which are 8-byte aligned (instead of 4-byte aligned). This avoids a potential performance hazard where doubles span cacheline boundaries. llvm-svn: 55807
* If function notes say optimize for size, then adjust alignment.Devang Patel2008-09-042-0/+4
| | | | llvm-svn: 55794
* Tidy up several unbeseeming casts from pointer to intptr_t.Dan Gohman2008-09-0419-24/+24
| | | | llvm-svn: 55779
* Fix the ordering of operands to the store (inverted relative to LLVM IR), ↵Owen Anderson2008-09-041-2/+4
| | | | | | and fix the testcase. llvm-svn: 55777
* Clean up uses of TargetLowering::getTargetMachine.Dan Gohman2008-09-042-2/+2
| | | | llvm-svn: 55769
* Add a first attempt at implementing stores for X86 fast isel using target hooks.Owen Anderson2008-09-041-0/+87
| | | | | | Dan or Evan, please review. llvm-svn: 55764
* Load from GV stub should be locally CSE'd.Evan Cheng2008-09-041-0/+2
| | | | llvm-svn: 55763
* Remove code that pad number of bytes to pop for X86_FastCall CC. The code ↵Evan Cheng2008-09-041-15/+0
| | | | | | doesn't do the "aligning" for Cygwin, Mingw, and Windows. But aligning it on Darwin and Linux breaks gcc compatibility. That ruled out all the platforms we support! llvm-svn: 55756
* Add intrinsics for log, log2, log10, exp, exp2.Dale Johannesen2008-09-047-0/+82
| | | | | | No functional change (and no FE change to generate them). llvm-svn: 55753
* Create HandlePHINodesInSuccessorBlocksFast, a version ofDan Gohman2008-09-033-32/+31
| | | | | | | | | | | | | HandlePHINodesInSuccessorBlocks that works FastISel-style. This allows PHI nodes to be updated correctly while using FastISel. This also involves some code reorganization; ValueMap and MBBMap are now members of the FastISel class, so they needn't be passed around explicitly anymore. Also, SelectInstructions is changed to SelectInstruction, and only does one instruction at a time. llvm-svn: 55746
* Add X86 target hook to implement load (even from GlobalAddress).Evan Cheng2008-09-031-1/+130
| | | | llvm-svn: 55693
* Fix capitalization in #include of FastISel.h. This unbreaks the build on ↵Ted Kremenek2008-09-031-1/+1
| | | | | | case-sensitive filesystems. llvm-svn: 55687
* Unbreak fast isel.Evan Cheng2008-09-031-2/+5
| | | | llvm-svn: 55685
* Let tblgen only generate fastisel routines, not the class definition. This ↵Evan Cheng2008-09-034-39/+28
| | | | | | makes it easier for targets to define its own fastisel class. llvm-svn: 55679
* Fix some bugs in the code sequences for atomics.Dale Johannesen2008-09-021-10/+10
| | | | llvm-svn: 55643
* Add Mac OS X compatible JIT callback routine.Evan Cheng2008-09-021-5/+29
| | | | llvm-svn: 55625
OpenPOWER on IntegriCloud