summaryrefslogtreecommitdiffstats
path: root/llvm/test
Commit message (Collapse)AuthorAgeFilesLines
* Fix PR3372Chris Lattner2009-02-021-0/+6
| | | | llvm-svn: 63501
* reduce testcase.Chris Lattner2009-02-021-480/+18
| | | | llvm-svn: 63499
* add 2 more testcases for -mattr=-sse (r63495).Torok Edwin2009-02-012-0/+66
| | | | | | | | | --This line, and those below, will be ignaored-- A test/CodeGen/X86/nosse-error1.ll A test/CodeGen/X86/nosse-error2.ll llvm-svn: 63496
* Implement -mno-sse: if SSE is disabled on x86-64, don't store XMM on stack forTorok Edwin2009-02-012-2/+46
| | | | | | var-args, and don't allow FP return values llvm-svn: 63495
* Fix PR3453 and probably a bunch of other potentialDuncan Sands2009-02-011-0/+32
| | | | | | | | | crashes or wrong code with codegen of large integers: eliminate the legacy getIntegerVTBitMask and getIntegerVTSignBit methods, which returned their value as a uint64_t, so couldn't handle huge types. llvm-svn: 63494
* Reinstate this optimization to fold icmp of xor when possible. Don't try toNick Lewycky2009-01-312-1/+22
| | | | | | | turn icmp eq a+x, b+x into icmp eq a, b if a+x or b+x has other uses. This may have been increasing register pressure leading to the bzip2 slowdown. llvm-svn: 63487
* Fix PR3452 (an infinite loop bootstrapping) by disabling the recentChris Lattner2009-01-312-0/+485
| | | | | | | | | | | improvements to the EvaluateInDifferentType code. This code works by just inserted a bunch of new code and then seeing if it is useful. Instcombine is not allowed to do this: it can only insert new code if it is useful, and only when it is converging to a more canonical fixed point. Now that we iterate when DCE makes progress, this causes an infinite loop when the code ends up not being used. llvm-svn: 63483
* Fix PR3401: when using large integers, the typeDuncan Sands2009-01-313-0/+51
| | | | | | | | | | | | | returned by getShiftAmountTy may be too small to hold shift values (it is an i8 on x86-32). Before and during type legalization, use a large but legal type for shift amounts: getPointerTy; afterwards use getShiftAmountTy, fixing up any shift amounts with a big type during operation legalization. Thanks to Dan for writing the original patch (which I shamelessly pillaged). llvm-svn: 63482
* now that all the pieces are in place, teach instcombine'sChris Lattner2009-01-311-0/+24
| | | | | | | | | | | | | | simplifydemandedbits to simplify instructions with *multiple uses* in contexts where it can get away with it. This allows it to simplify the code in multi-use-or.ll into a single 'add double'. This change is particularly interesting because it will cover up for some common codegen bugs with large integers created due to the recent SROA patch. When working on fixing those bugs, this should be disabled. llvm-svn: 63481
* make sure to set Changed=true when instcombine hacks on the code,Chris Lattner2009-01-311-0/+24
| | | | | | | not doing so prevents it from properly iterating and prevents it from deleting the entire body of dce-iterate.ll llvm-svn: 63476
* Used "-enable-unsafe-fp-math" to allow this transformation - (a * b -c) = c ↵Mon P Wang2009-01-311-1/+1
| | | | | | - a *b. llvm-svn: 63475
* If unsafe FP optimization is not set, don't allow -(A-B) => B-A becauseMon P Wang2009-01-311-0/+12
| | | | | | when A==B, -0.0 != +0.0. llvm-svn: 63474
* Simplify and generalize the SROA "convert to scalar" transformation toChris Lattner2009-01-314-8/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | be able to handle *ANY* alloca that is poked by loads and stores of bitcasts and GEPs with constant offsets. Before the code had a number of annoying limitations and caused it to miss cases such as storing into holes in structs and complex casts (as in bitfield-sroa) where we had unions of bitfields etc. This also handles a number of important cases that are exposed due to the ABI lowering stuff we do to pass stuff by value. One case that is pretty great is that we compile 2006-11-07-InvalidArrayPromote.ll into: define i32 @func(<4 x float> %v0, <4 x float> %v1) nounwind { %tmp10 = call <4 x i32> @llvm.x86.sse2.cvttps2dq(<4 x float> %v1) %tmp105 = bitcast <4 x i32> %tmp10 to i128 %tmp1056 = zext i128 %tmp105 to i256 %tmp.upgrd.43 = lshr i256 %tmp1056, 96 %tmp.upgrd.44 = trunc i256 %tmp.upgrd.43 to i32 ret i32 %tmp.upgrd.44 } which turns into: _func: subl $28, %esp cvttps2dq %xmm1, %xmm0 movaps %xmm0, (%esp) movl 12(%esp), %eax addl $28, %esp ret Which is pretty good code all things considering :). One effect of this is that SROA will start generating arbitrary bitwidth integers that are a multiple of 8 bits. In the case above, we got a 256 bit integer, but the codegen guys assure me that it can handle the simple and/or/shift/zext stuff that we're doing on these operations. This addresses rdar://6532315 llvm-svn: 63469
* Each input file is encoded as a separate compile unit in LLVM debuggingDevang Patel2009-01-301-0/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | information output. However, many target specific tool chains prefer to encode only one compile unit in an object file. In this situation, the LLVM code generator will include debugging information entities in the compile unit that is marked as main compile unit. The code generator accepts maximum one main compile unit per module. If a module does not contain any main compile unit then the code generator will emit multiple compile units in the output object file. [Part 1] Update DebugInfo APIs to accept optional boolean value while creating DICompileUnit to mark the unit as "main" unit. By defaults all units are considered non-main. Update SourceLevelDebugging.html to document "main" compile unit. Update DebugInfo APIs to not accept and encode separate source file/directory entries while creating various llvm.dbg.* entities. There was a recent, yet to be documented, change to include this additional information so no documentation changes are required here. Update DwarfDebug to handle "main" compile unit. If "main" compile unit is seen then all DIEs are inserted into "main" compile unit. All other compile units are used to find source location for llvm.dbg.* values. If there is not any "main" compile unit then create unique compile unit DIEs for each llvm.dbg.compile_unit. [Part 2] Create separate llvm.dbg.compile_unit for each input file. Mark compile unit create for main_input_filename as "main" compile unit. Use appropriate compile unit, based on source location information collected from the tree node, while creating llvm.dbg.* values using DebugInfo APIs. --- This is Part 1. llvm-svn: 63400
* This is case is to uncover the bug in IntrinsicLowering.cpp,Zhou Sheng2009-01-301-0/+17
| | | | | | | | the LowerPartSet(). It didn't handle the situation correctly when the low, high argument values are in reverse order (low > high) with 'Val' type is i32 (a corner case). llvm-svn: 63386
* Enable target tripple.Devang Patel2009-01-301-1/+1
| | | | llvm-svn: 63361
* Linux and other target's encoding for DW_AT_declaration may not match.Devang Patel2009-01-301-0/+1
| | | | llvm-svn: 63360
* Add DW_AT_declaration for class methods.Devang Patel2009-01-301-0/+31
| | | | llvm-svn: 63356
* XFAIL this test. It only worked before because of a bug in the spill point ↵Owen Anderson2009-01-291-0/+1
| | | | | | | | selection code. Not deleting because it should be possible to enhance the selection code to handle this in the future. llvm-svn: 63340
* Local register allocator shouldn't assume only the entry and landing pad ↵Evan Cheng2009-01-291-0/+38
| | | | | | basic blocks have live-ins. llvm-svn: 63323
* In the case of an extractelement on an insertelement value,Dan Gohman2009-01-291-0/+25
| | | | | | | the element indices may be equal if either one is not a constant. llvm-svn: 63311
* Add a always_inline test case.Evan Cheng2009-01-291-0/+12
| | | | llvm-svn: 63304
* Add a test case for Chris lvalue alignment fixes.Evan Cheng2009-01-291-0/+17
| | | | llvm-svn: 63300
* Exit with nice warnings when register allocator run out of registers.Evan Cheng2009-01-291-0/+32
| | | | llvm-svn: 63267
* Make x86's BT instruction matching more thorough, and add someDan Gohman2009-01-292-4/+433
| | | | | | | | | dagcombines that help it match in several more cases. Add several more cases to test/CodeGen/X86/bt.ll. This doesn't yet include matching for BT with an immediate operand, it just covers more register+register cases. llvm-svn: 63266
* Fixed lowering of v816 shuffles.Mon P Wang2009-01-281-0/+14
| | | | llvm-svn: 63252
* Make test platform agnostic.Bill Wendling2009-01-281-3/+1
| | | | llvm-svn: 63247
* Give this test an explicit target, to make it host-independent.Dan Gohman2009-01-281-1/+1
| | | | llvm-svn: 63244
* Do not forget to derived type while constructing an array type.Devang Patel2009-01-281-0/+93
| | | | llvm-svn: 63233
* Fix some issues with volatility, move "CanConvertToScalar" check Chris Lattner2009-01-281-0/+12
| | | | | | after the others. llvm-svn: 63227
* strengthen this test.Chris Lattner2009-01-281-3/+2
| | | | llvm-svn: 63222
* The memory alignment requirement on some of the mov{h|l}p{d|s} patterns are ↵Evan Cheng2009-01-281-0/+19
| | | | | | 16-byte. That is overly strict. These instructions read / write f64 memory locations without alignment requirement. llvm-svn: 63195
* Added sse test patterns for r62979 and r63193.Mon P Wang2009-01-284-0/+254
| | | | llvm-svn: 63194
* Add three new option properties.Mikhail Glushenkov2009-01-283-1/+45
| | | | | | Adds new option properties 'multi_val', 'one_or_more' and 'zero_or_one'. llvm-svn: 63172
* Add testcase for r63142.Bill Wendling2009-01-271-0/+40
| | | | llvm-svn: 63149
* Implement multiple with overflow by 2 with an add instruction.Evan Cheng2009-01-271-0/+20
| | | | llvm-svn: 63090
* Forgot this test case.Evan Cheng2009-01-271-0/+10
| | | | llvm-svn: 63089
* Add a FrontendC testcase for the x86-64 Red Zone feature,Dan Gohman2009-01-271-0/+11
| | | | | | | to help verify that the feature may be disabled through the -mno-red-zone option. llvm-svn: 63079
* Assorted debug info fixes.Devang Patel2009-01-271-1/+1
| | | | | | | | - DW_AT_bit_size is only suitable for bitfields. - Encode source location info for derived types. - Source location and type size info is not useful for subroutine_type (info is included in respective DISubprogram) and array_type. llvm-svn: 63077
* Add a regression test for x86-64 red zone usage.Dan Gohman2009-01-271-0/+13
| | | | llvm-svn: 63075
* Testcase for 6522054.Dale Johannesen2009-01-261-0/+14
| | | | llvm-svn: 63067
* Fix PR3393, which amounts to a bug in the expensiveDuncan Sands2009-01-261-0/+16
| | | | | | | | | checking logic. Rather than make the checking more complicated, I've tweaked some logic to make things conform to how the checking thought things ought to be, since this results in a simpler "mental model". llvm-svn: 63048
* At Nick Lewycky's request, rename this test with a more informative name.Dan Gohman2009-01-261-0/+0
| | | | llvm-svn: 63042
* Enhance logic in X86DAGToDAGISel::PreprocessForRMW which move load inside ↵Evan Cheng2009-01-261-0/+45
| | | | | | callseq_start to allow it to be folded into a call. It was not considering the cases where a token factor is between the load and the callseq_start. llvm-svn: 63022
* Fixed optimization of combining two shuffles where the first shuffle inputsMon P Wang2009-01-261-0/+19
| | | | | | has a different number of elements than the output. llvm-svn: 62998
* CellSPU:Scott Michel2009-01-265-69/+84
| | | | | | | | | | | | | | | | - Rename fcmp.ll test to fcmp32.ll, start adding new double tests to fcmp64.ll - Fix select_bits.ll test - Capitulate to the DAGCombiner and move i64 constant loads to instruction selection (SPUISelDAGtoDAG.cpp). <rant>DAGCombiner will insert all kinds of 64-bit optimizations after operation legalization occurs and now we have to do most of the work that instruction selection should be doing twice (once to determine if v2i64 build_vector can be handled by SelectCode(), which then runs all of the predicates a second time to select the necessary instructions.) But, CellSPU is a good citizen.</rant> llvm-svn: 62990
* Handle single-entry phi nodes gracefully in condprop.Chris Lattner2009-01-261-0/+37
| | | | llvm-svn: 62985
* Fix PR3408 by making a non-obvious assumption very obvious, and Chris Lattner2009-01-261-0/+21
| | | | | | handling the flaw inherent in that assumption. :) llvm-svn: 62984
* Map address space 256 to gs; similar mappings could be supported for theNate Begeman2009-01-261-0/+8
| | | | | | | other x86 segments. address space 0 is stack/default, 1-255 are reserved for client use. llvm-svn: 62980
* revert this patch for now, because Codegen does still want to generate SSE code,Torok Edwin2009-01-252-0/+4
| | | | | | for example in the case of va-args. XFAIL associated tests. llvm-svn: 62972
OpenPOWER on IntegriCloud