summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Clean this up, based on Evan's suggestions.Owen Anderson2008-09-091-2/+2
| | | | llvm-svn: 56009
* - Add support for 6-, 12-, and 18-bit limited precision floating-point "log"Bill Wendling2008-09-091-112/+216
| | | | | | | values. - Refactored some of the code. llvm-svn: 56008
* Fix PR2757. Ignore liveinterval register allocation preference if the ↵Evan Cheng2008-09-091-1/+1
| | | | | | preference register is not in the right register class. This can happen due to sub-register coalescing. llvm-svn: 56006
* Make safer variant of alias resolution routine to be defaultAnton Korobeynikov2008-09-091-1/+1
| | | | llvm-svn: 56005
* Add limited precision floating-point conversions of log10 for 6- and 18-bitBill Wendling2008-09-091-4/+55
| | | | | | precisions. llvm-svn: 56000
* Check for type legality before materializing integer constants in fast isel. ↵Owen Anderson2008-09-091-0/+2
| | | | | | | | With this change, all of MultiSource/Applications passes on Darwin/X86 under FastISel. llvm-svn: 55982
* Remove the code that protected FastISel from aborting inDan Gohman2008-09-091-5/+2
| | | | | | | | the case of loads, stores, and conditional branches. It can handle those now, so any that aren't handled should trigger the abort. llvm-svn: 55977
* Fix a constant lowering bug. Now we can do load and store instructions with ↵Evan Cheng2008-09-091-0/+13
| | | | | | funky getelementptr embedded in the address operand. llvm-svn: 55975
* Fix logic for not emitting no-dead-strip for someDale Johannesen2008-09-091-2/+14
| | | | | | | | | | 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
* Add support for floating-point calculations of log2 with limited precisions of 6Bill Wendling2008-09-091-76/+191
| | | | | | and 18. llvm-svn: 55968
* Don't suppress no-dead-strip for used static functions.Dale Johannesen2008-09-081-1/+1
| | | | llvm-svn: 55962
* Reapply 55904: Unbreak and fix indentationAnton Korobeynikov2008-09-081-37/+33
| | | | llvm-svn: 55958
* Fix a few I's that were meant to be renamed to BI's.Dan Gohman2008-09-081-2/+2
| | | | llvm-svn: 55942
* Redo the 3 existing low-precision expansions toDale Johannesen2008-09-081-47/+38
| | | | | | | use float constants. An oversight by the numerics people who supplied this. llvm-svn: 55930
* Reverting r55898 to r55909. One of these patches was causing an ICE during ↵Bill Wendling2008-09-081-33/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* In visitUREM, arrange for the temporary UDIV node to beDan Gohman2008-09-081-0/+1
| | | | | | revisited, consistent with the code in visitSREM. llvm-svn: 55923
* Add VISIBILITY_HIDDEN on SDISelAsmOperandInfoDaniel Dunbar2008-09-081-1/+1
| | | | llvm-svn: 55922
* Add AsmPrinter support for i128 and larger static initializer data.Dan Gohman2008-09-081-19/+36
| | | | llvm-svn: 55919
* Fix the string for ISD::UDIVREM.Dan Gohman2008-09-081-1/+1
| | | | llvm-svn: 55917
* Avoid redefinition and nnbreak windows build.Evan Cheng2008-09-081-16/+16
| | | | llvm-svn: 55911
* Unbreak and fix indentationAnton Korobeynikov2008-09-081-37/+33
| | | | llvm-svn: 55904
* Add fast isel physical register definition support.Evan Cheng2008-09-081-7/+64
| | | | llvm-svn: 55892
* Revert my previous change -- the subtraction of two constants was a no-opBill Wendling2008-09-081-1/+1
| | | | | | | | | before. This is taken care of in the selection DAG pass. In my opinion, this should be in one place or the other. I.e., it should probably be removed from the DAG combiner (along with the other arithmetic transformations on constants that are essentially no-ops). llvm-svn: 55889
* ConvertBill Wendling2008-09-071-1/+1
| | | | | | | | // fold (sub c1, c2) -> c1-c2 from a no-op into an actual transformation. llvm-svn: 55886
* Indentation.Evan Cheng2008-09-071-2/+2
| | | | llvm-svn: 55880
* - Doh. Pass vector by value is bad.Evan Cheng2008-09-071-1/+11
| | | | | | - Add a AnalyzeCallResult specialized for calls which produce a single value. This is used by fastisel. llvm-svn: 55879
* Next limited float precision expansion (log2 12 bits)Dale Johannesen2008-09-051-3/+43
| | | | llvm-svn: 55866
* Revert r55859. This is breaking the build in the abscence of its companion ↵Owen Anderson2008-09-051-4/+12
| | | | | | commit. llvm-svn: 55865
* Move the code that inserts copies for function livein registersDan Gohman2008-09-052-109/+113
| | | | | | | | | out of ScheduleDAGEmit.cpp and into SelectionDAGISel.cpp. This allows it to be run exactly once per function, even if multiple SelectionDAG iterations happen in the entry block, as may happen with FastISel. llvm-svn: 55863
* Add the next limited-precision expansion.Dale Johannesen2008-09-051-3/+42
| | | | llvm-svn: 55856
* FastISel support for AND and OR with type i1.Dan Gohman2008-09-051-2/+10
| | | | llvm-svn: 55846
* Add hooks for other intrinsics to get low-precision expansions.Dale Johannesen2008-09-052-12/+60
| | | | llvm-svn: 55845
* FastISel support for ConstantExprs.Dan Gohman2008-09-051-5/+17
| | | | llvm-svn: 55843
* Revert r55817. It broke PIC. FastISel will need to find a differentDan Gohman2008-09-051-3/+1
| | | | | | approach here. llvm-svn: 55842
* Add a variant of AnalyzeCallOperands that can be used by fast isel.Evan Cheng2008-09-051-0/+17
| | | | llvm-svn: 55838
* "Fix" PR2762. The testcase now crashes codegenDuncan Sands2008-09-051-1/+19
| | | | | | | elsewhere due to a missing pattern for v2f64 = sint_to_fp v2i32. That is PR2687. llvm-svn: 55828
* Fix a search+replace-o.Dan Gohman2008-09-051-1/+1
| | | | llvm-svn: 55824
* Add -flimit-float-precision to enable some faster,Dale Johannesen2008-09-052-3/+57
| | | | | | | | | but less accurate (non-IEEE) code sequences for certain math library functions. Add the first of several such expansions. Don't worry, if you don't turn it on it won't affect you. llvm-svn: 55823
* FastISel support for unreachable.Dan Gohman2008-09-051-0/+4
| | | | llvm-svn: 55818
* In FastISel mode, the scheduler may be invoked multiple timesDan Gohman2008-09-051-1/+3
| | | | | | | in the same block. Fix the entry-block handling to only run at at the beginning of the entry block, and not any other times. llvm-svn: 55817
* Add initial support for selecting constant materializations that require ↵Owen Anderson2008-09-051-1/+1
| | | | | | | | constant pool loads on X86 in fast isel. This isn't actually used yet. llvm-svn: 55814
* Add an include of SmallSet.h.Dan Gohman2008-09-041-0/+1
| | | | llvm-svn: 55793
* Tidy up several unbeseeming casts from pointer to intptr_t.Dan Gohman2008-09-0426-30/+29
| | | | llvm-svn: 55779
* Clean up uses of TargetLowering::getTargetMachine.Dan Gohman2008-09-043-6/+6
| | | | llvm-svn: 55769
* Fix an overly strict assertion. Source register of a copy may not be killed, ↵Evan Cheng2008-09-041-1/+2
| | | | | | it may be killed by an implicit super-register use. llvm-svn: 55762
* Add intrinsics for log, log2, log10, exp, exp2.Dale Johannesen2008-09-044-0/+328
| | | | | | No functional change (and no FE change to generate them). llvm-svn: 55753
* Do trivial local CSE for constants and other non-Instruction valuesDan Gohman2008-09-031-12/+15
| | | | | | in FastISel. llvm-svn: 55748
* Put RegsForValue in the llvm namespace to avoid warnings aboutDan Gohman2008-09-031-1/+1
| | | | | | | classes in the llvm namespace having members with types from anonymous namespaces. llvm-svn: 55747
* Create HandlePHINodesInSuccessorBlocksFast, a version ofDan Gohman2008-09-033-187/+226
| | | | | | | | | | | | | 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
* Do not emit a UsedDirective for things in the llvm.usedDale Johannesen2008-09-031-3/+32
| | | | | | | | | list that have internal linkage; the linker doesn't need or want this. (These objects must still be preserved at compile time, so just removing them from the llvm.used list doesn't work.) Should affect only Darwin. llvm-svn: 55722
OpenPOWER on IntegriCloud