summaryrefslogtreecommitdiffstats
path: root/test/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Testcase for PR1638.Bill Wendling2008-10-151-0/+27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57590 91177308-0d34-0410-b5e6-96231b3b80d8
* - Add target lowering hooks that specify which setcc conditions are illegal,Evan Cheng2008-10-151-0/+11
| | | | | | | | | | | | i.e. conditions that cannot be checked with a single instruction. For example, SETONE and SETUEQ on x86. - Teach legalizer to implement *illegal* setcc as a and / or of a number of legal setcc nodes. For now, only implement FP conditions. e.g. SETONE is implemented as SETO & SETNE, SETUEQ is SETUO | SETEQ. - Move x86 target over. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57542 91177308-0d34-0410-b5e6-96231b3b80d8
* When doing the very-late shift-and address-mode optimization,Dan Gohman2008-10-131-0/+38
| | | | | | | | | | | | | | | create a new DAG node to represent the new shift to keep the DAG consistent, even though it'll almost always be folded into the address. If a user of the resulting address has multiple uses, the nodes may get revisited by a later MatchAddress call, in which case DAG inconsistencies do matter. This fixes PR2849. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57465 91177308-0d34-0410-b5e6-96231b3b80d8
* FIX PR2794. Make sure SIGN_EXTEND_INREG nodes introduced by ↵Evan Cheng2008-10-131-0/+29
| | | | | | LegalizeSetCCOperands are leglized. Patch by Richard Pennington. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57460 91177308-0d34-0410-b5e6-96231b3b80d8
* Also update sub-register intervals after a trivial computation is rematt'ed ↵Evan Cheng2008-10-131-0/+42
| | | | | | for a copy instruction. PR2775. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57458 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a test case for _Complex passed as a FCA.Evan Cheng2008-10-131-0/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57456 91177308-0d34-0410-b5e6-96231b3b80d8
* Change CALLSEQ_BEGIN and CALLSEQ_END to take TargetConstant's asChris Lattner2008-10-111-0/+21
| | | | | | | | | parameters instead of raw Constants. This prevents the constants from being selected by the isel pass, fixing PR2735. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57385 91177308-0d34-0410-b5e6-96231b3b80d8
* Add testcase for 'r' inline asm operandAnton Korobeynikov2008-10-101-0/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57361 91177308-0d34-0410-b5e6-96231b3b80d8
* This does not fail anymoreAnton Korobeynikov2008-10-101-2/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57360 91177308-0d34-0410-b5e6-96231b3b80d8
* Add sparc test for memory operand used in inline asmAnton Korobeynikov2008-10-101-0/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57348 91177308-0d34-0410-b5e6-96231b3b80d8
* This is not failing anymoreAnton Korobeynikov2008-10-101-2/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57347 91177308-0d34-0410-b5e6-96231b3b80d8
* get CodeGen/Alpha/mul128.ll to work.Chris Lattner2008-10-091-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57318 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove -disable-fast-isel. Use cl::boolOrDefault with -fast-iselDan Gohman2008-10-071-1/+1
| | | | | | | | | | | instead. So now: -fast-isel or -fast-isel=true enable fast-isel, and -fast-isel=false disables it. Fast-isel is also on by default with -fast, and off by default otherwise. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57270 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a testcase for i256 add. i256 isn't fully supported inDan Gohman2008-10-071-0/+18
| | | | | | | codegen right now, but add and subtract work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57260 91177308-0d34-0410-b5e6-96231b3b80d8
* 128 mul test, xfailedAndrew Lenharth2008-10-071-0/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57250 91177308-0d34-0410-b5e6-96231b3b80d8
* Certain patterns involving the "movss" instruction were marked as requiring ↵Anders Carlsson2008-10-071-0/+22
| | | | | | SSE2, when in reality movss is an SSE1 instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57246 91177308-0d34-0410-b5e6-96231b3b80d8
* Expand arith on machines without carry flagsAndrew Lenharth2008-10-072-1/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57243 91177308-0d34-0410-b5e6-96231b3b80d8
* no need to write the output to the diskChris Lattner2008-10-071-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57232 91177308-0d34-0410-b5e6-96231b3b80d8
* Add test case for ADDC ADDE expansionAndrew Lenharth2008-10-071-0/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57228 91177308-0d34-0410-b5e6-96231b3b80d8
* Be more precise about which conversions of NaNsDale Johannesen2008-10-062-0/+31
| | | | | | | | | | are Inexact. (These are not Inexact as defined by IEEE754, but that seems like a reasonable way to abstract what happens: information is lost.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57218 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR2850 and PR2863. Only generate movddup for 128-bit SSE vector shuffles.Evan Cheng2008-10-061-0/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57210 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert r56675 - it breaks unwinding runtime everywhere.Anton Korobeynikov2008-10-042-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57048 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a bug in the local allocator's liveness computation where itDan Gohman2008-10-041-0/+31
| | | | | | | | | was setting kill flags on tied uses in two-address instructions. The kill flags were causing the allocator to think it could allocate the use and its tied def in different registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57039 91177308-0d34-0410-b5e6-96231b3b80d8
* Handle some 64-bit atomics on x86-32, some of the time.Dale Johannesen2008-10-021-0/+969
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56963 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a think-o in isSafeToMove. This fixes it from thinking thatDan Gohman2008-10-021-0/+17
| | | | | | | volatile memory references are safe to move. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56948 91177308-0d34-0410-b5e6-96231b3b80d8
* Disable fast-isel for this test, as it doesn't emit the sameDan Gohman2008-10-011-1/+1
| | | | | | | number of instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56940 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove OptimizeForSize global. Use function attribute optsize.Devang Patel2008-10-012-1/+17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56937 91177308-0d34-0410-b5e6-96231b3b80d8
* Split this test and move it into target-specific directories.Dan Gohman2008-10-012-1/+8
| | | | | | | | This fixes failures on configurations that don't have one or the other targets enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56926 91177308-0d34-0410-b5e6-96231b3b80d8
* nounwind-ify this test.Dan Gohman2008-10-011-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56918 91177308-0d34-0410-b5e6-96231b3b80d8
* Moved this option to the front-end.Bill Wendling2008-10-011-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56901 91177308-0d34-0410-b5e6-96231b3b80d8
* Use explicit target-triples to unbreak this test on non-darwin systems.Dan Gohman2008-10-011-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56896 91177308-0d34-0410-b5e6-96231b3b80d8
* Just don't transform this memset into "bzero" if no-builtin is specified.Bill Wendling2008-09-301-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56888 91177308-0d34-0410-b5e6-96231b3b80d8
* - Initialize "--no-builtin" to "false".Bill Wendling2008-09-301-0/+1
| | | | | | | - Testcase for r56885. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56886 91177308-0d34-0410-b5e6-96231b3b80d8
* Re-apply 56835 along with header file changes.Evan Cheng2008-09-301-0/+85
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56848 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert commit 56835 since it breaks the build.Duncan Sands2008-09-301-85/+0
| | | | | | | | | | | "If a re-materializable instruction has a register operand, the spiller will change the register operand's spill weight to HUGE_VAL to avoid it being spilled. However, if the operand is already in the queue ready to be spilled, avoid re-materializing it". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56837 91177308-0d34-0410-b5e6-96231b3b80d8
* If a re-materializable instruction has a register operand, the spiller will ↵Evan Cheng2008-09-301-0/+85
| | | | | | change the register operand's spill weight to HUGE_VAL to avoid it being spilled. However, if the operand is already in the queue ready to be spilled, avoid re-materializing it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56835 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR2835. Do not change the width of a volatile load.Evan Cheng2008-09-291-0/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56792 91177308-0d34-0410-b5e6-96231b3b80d8
* Re-apply 56683 with fixes.Evan Cheng2008-09-274-5/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56748 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement function notes as function attributes. Devang Patel2008-09-261-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56716 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement "punpckldq %xmm0, $xmm0" as "pshufd $0x50, %xmm0, %xmm" unless ↵Evan Cheng2008-09-262-4/+23
| | | | | | optimizing for code size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56711 91177308-0d34-0410-b5e6-96231b3b80d8
* Temporarily reverting r56683. This is causing a failure during the build of ↵Bill Wendling2008-09-263-2/+5
| | | | | | | | | | | | | | | | | | llvm-gcc: /Volumes/Gir/devel/llvm/clean/llvm-gcc.obj/./gcc/xgcc -B/Volumes/Gir/devel/llvm/clean/llvm-gcc.obj/./gcc/ -B/Volumes/Gir/devel/llvm/clean/llvm-gcc.install/i386-apple-darwin9.5.0/bin/ -B/Volumes/Gir/devel/llvm/clean/llvm-gcc.install/i386-apple-darwin9.5.0/lib/ -isystem /Volumes/Gir/devel/llvm/clean/llvm-gcc.install/i386-apple-darwin9.5.0/include -isystem /Volumes/Gir/devel/llvm/clean/llvm-gcc.install/i386-apple-darwin9.5.0/sys-include -mmacosx-version-min=10.4 -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/Gir/devel/llvm/clean/llvm.obj/include -I/Volumes/Gir/devel/llvm/clean/llvm.src/include -fexceptions -fvisibility=hidden -DHIDE_EXPORTS -c ../../llvm-gcc.src/gcc/unwind-dw2-fde-darwin.c -o libgcc/./unwind-dw2-fde-darwin.o Assertion failed: (TargetRegisterInfo::isVirtualRegister(regA) && TargetRegisterInfo::isVirtualRegister(regB) && "cannot update physical register live information"), function runOnMachineFunction, file /Volumes/Gir/devel/llvm/clean/llvm.src/lib/CodeGen/TwoAddressInstructionPass.cpp, line 311. ../../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}:3521:non-relocatable subtraction expression, "_dwarf_reg_size_table" minus "L20$pb" {standard input}:3521:symbol: "_dwarf_reg_size_table" can't be undefined in a subtraction expression {standard input}:3520:non-relocatable subtraction expression, "_dwarf_reg_size_table" minus "L20$pb" ... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56703 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix @llvm.frameaddress codegen. FP elimination optimization should be ↵Evan Cheng2008-09-263-3/+20
| | | | | | disabled when frame address is desired. Also add support for depth > 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56683 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid spilling EBP / RBP twice in the prologue.Evan Cheng2008-09-262-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56675 91177308-0d34-0410-b5e6-96231b3b80d8
* Prefer movlhps over punpcklqdq, etc. in more cases.Evan Cheng2008-09-251-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56627 91177308-0d34-0410-b5e6-96231b3b80d8
* With sse3 and when the source is a load or has multiple uses, favors movddup ↵Evan Cheng2008-09-251-0/+16
| | | | | | over shuffp*, pshufd, etc. Without sse3 or when the source is from a register, make use of movlhps git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56620 91177308-0d34-0410-b5e6-96231b3b80d8
* Accept 'inreg' attribute on x86 functions asDale Johannesen2008-09-251-0/+19
| | | | | | | | | | meaning sse_regparm (i.e. float/double values go in XMM0 instead of ST0). Update documentation to reflect reality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56619 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix patterns for SSE4.1 move and sign extend instructions. Also add ↵Evan Cheng2008-09-241-0/+47
| | | | | | instructions which fold VZEXT_MOVL and VZEXT_LOAD. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56594 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove SelectionDag early allocation of registersDale Johannesen2008-09-243-2/+35
| | | | | | | | | for earlyclobbers. Teach Local RA about earlyclobber, and add some tests for it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56592 91177308-0d34-0410-b5e6-96231b3b80d8
* Properly handle 'm' inline asm constraints. If a GV is being selected for ↵Evan Cheng2008-09-241-0/+10
| | | | | | the addressing mode, it requires the same logic for PIC relative addressing, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56526 91177308-0d34-0410-b5e6-96231b3b80d8
* Support x86 specific inline asm modifier 'J'.Evan Cheng2008-09-221-4/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56483 91177308-0d34-0410-b5e6-96231b3b80d8