summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Make the Dwarf macro information section optional; CellSPU's assemblerScott Michel2009-01-262-5/+10
| | | | | | | doesn't support it. The default is set to 'true', so this should not impact any other target backends. llvm-svn: 63058
* Implement Red Zone utilization on x86-64. This is currentlyDan Gohman2009-01-262-0/+19
| | | | | | | disabled by default; I'll enable it when I hook it up with the llvm-gcc flag which controls it. llvm-svn: 63056
* Reapply r63025 and r63026, with fixes for the failing testcases.Owen Anderson2009-01-261-356/+13
| | | | llvm-svn: 63049
* Fix PR3393, which amounts to a bug in the expensiveDuncan Sands2009-01-262-16/+37
| | | | | | | | | 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
* Add method raw_fd_ostream::seek() for random access within a file.Ted Kremenek2009-01-261-0/+6
| | | | llvm-svn: 63044
* Also revert r63206Bill Wendling2009-01-261-0/+321
| | | | llvm-svn: 63041
* Temporarily revert r63025 until the testsuite failures can be fixed.Bill Wendling2009-01-261-12/+34
| | | | llvm-svn: 63040
* During bittest switch lowering emit shift in the test block, which should ↵Anton Korobeynikov2009-01-261-11/+9
| | | | | | | | (theoretically) allow us to generate more efficient code. We don't do this now though :) llvm-svn: 63027
* Get rid of a bunch of dead code now that interval reconstruction is enabled.Owen Anderson2009-01-261-321/+0
| | | | llvm-svn: 63026
* Fix an issue where LiveIntervals was trying to be smart about removing killOwen Anderson2009-01-261-34/+12
| | | | | | | | | markers, and ended up foiling the interval reconstruction. This allows us to turn on reconstruction in the pre alloc splitter, which fixes a number of miscompilations. llvm-svn: 63025
* Enhance logic in X86DAGToDAGISel::PreprocessForRMW which move load inside ↵Evan Cheng2009-01-261-8/+27
| | | | | | 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
* Silence a bogus compiler warning.Evan Cheng2009-01-261-1/+1
| | | | llvm-svn: 63021
* Actually source file has already been uniquified into an id during isel. ↵Evan Cheng2009-01-261-15/+3
| | | | | | Eliminate the StringMap. llvm-svn: 63009
* Add data structure to define and track debug location during codegen.Evan Cheng2009-01-261-0/+27
| | | | llvm-svn: 63008
* Fixed optimization of combining two shuffles where the first shuffle inputsMon P Wang2009-01-261-1/+3
| | | | | | has a different number of elements than the output. llvm-svn: 62998
* Take the next steps in making SDUse more consistent with LLVM Use, andDan Gohman2009-01-264-88/+77
| | | | | | | | | | | | | | | | | tidy up SDUse and related code. - Replace the operator= member functions with a set method, like LLVM Use has, and variants setInitial and setNode, which take care up updating use lists, like LLVM Use's does. This simplifies code that calls these functions. - getSDValue() is renamed to get(), as in LLVM Use, though most places can either use the implicit conversion to SDValue or the convenience functions instead. - Fix some more node vs. value terminology issues. Also, eliminate the one remaining use of SDOperandPtr, and SDOperandPtr itself. llvm-svn: 62995
* Untabify code.Scott Michel2009-01-266-49/+49
| | | | llvm-svn: 62991
* CellSPU:Scott Michel2009-01-266-231/+468
| | | | | | | | | | | | | | | | - 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
* Fix a typoNate Begeman2009-01-261-3/+2
| | | | llvm-svn: 62989
* De-identifying per sabre reviewNate Begeman2009-01-261-56/+59
| | | | llvm-svn: 62988
* Handle single-entry phi nodes gracefully in condprop.Chris Lattner2009-01-261-0/+8
| | | | llvm-svn: 62985
* Fix PR3408 by making a non-obvious assumption very obvious, and Chris Lattner2009-01-261-2/+6
| | | | | | handling the flaw inherent in that assumption. :) llvm-svn: 62984
* More cleanups and simplifications, no functionality change.Chris Lattner2009-01-261-47/+23
| | | | llvm-svn: 62983
* tidy assertsChris Lattner2009-01-261-18/+17
| | | | llvm-svn: 62982
* Map address space 256 to gs; similar mappings could be supported for theNate Begeman2009-01-262-0/+20
| | | | | | | other x86 segments. address space 0 is stack/default, 1-255 are reserved for client use. llvm-svn: 62980
* Support pattern matching various x86 sse shifts.Nate Begeman2009-01-261-0/+93
| | | | llvm-svn: 62979
* silence a warning when assertions are disabled.Chris Lattner2009-01-251-3/+3
| | | | llvm-svn: 62976
* 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
* Eliminate the loop that searches through each of the operandsDan Gohman2009-01-251-195/+178
| | | | | | | | | | | of each use in the SelectionDAG ReplaceAllUses* functions. Thanks to Chris for spotting this opportunity. Also, factor out code from all 5 of the ReplaceAllUses* functions into AddNonLeafNodeToCSEMaps, which is now renamed AddModifiedNodeToCSEMaps to more accurately reflect its purpose. llvm-svn: 62964
* Whitespace tidiments.Dan Gohman2009-01-251-2/+1
| | | | llvm-svn: 62963
* Move the N->use_empty() assert from DeleteNode toDan Gohman2009-01-251-3/+2
| | | | | | | DeleteNodeNotInCSEMaps, since DeleteNode just calls DeleteNodeNotInCSEMaps. llvm-svn: 62962
* Start generating arbitrary precision integer SCEVs. This removes the temporaryNick Lewycky2009-01-251-11/+1
| | | | | | code that rounded up and capped the size. llvm-svn: 62958
* The function that does nothing but call malloc is noalias return.Nick Lewycky2009-01-251-5/+6
| | | | llvm-svn: 62956
* Private linkage support for PPC / Darwin.Evan Cheng2009-01-251-0/+2
| | | | llvm-svn: 62955
* Teach 2addr pass to be do more commuting. If both uses of a two-address ↵Evan Cheng2009-01-251-6/+104
| | | | | | | | | | | | | | | | | | | | | instruction are killed, but the first operand has a use before and after the def, commute if the second operand does not suffer from the same issue. %reg1028<def> = EXTRACT_SUBREG %reg1027<kill>, 1 %reg1029<def> = MOV8rr %reg1028 %reg1029<def> = SHR8ri %reg1029, 7, %EFLAGS<imp-def,dead> insert => %reg1030<def> = MOV8rr %reg1028 %reg1030<def> = ADD8rr %reg1028<kill>, %reg1029<kill>, %EFLAGS<imp-def,dead> In this case, it might not be possible to coalesce the second MOV8rr instruction if the first one is coalesced. So it would be profitable to commute it: %reg1028<def> = EXTRACT_SUBREG %reg1027<kill>, 1 %reg1029<def> = MOV8rr %reg1028 %reg1029<def> = SHR8ri %reg1029, 7, %EFLAGS<imp-def,dead> insert => %reg1030<def> = MOV8rr %reg1029 %reg1030<def> = ADD8rr %reg1029<kill>, %reg1028<kill>, %EFLAGS<imp-def,dead> llvm-svn: 62954
* Fix an indent and a typo.Nate Begeman2009-01-242-2/+2
| | | | llvm-svn: 62940
* Revert previous change; even this mild and clearlyDale Johannesen2009-01-241-7/+4
| | | | | | | more accurate change loses more than it gains on benchmarks. llvm-svn: 62938
* add note about possible GEP improvement with fields of size 0.Torok Edwin2009-01-241-0/+6
| | | | llvm-svn: 62925
* testcase for PR3381.Torok Edwin2009-01-241-1/+1
| | | | | | Also it was an empty struct, not a void after all. llvm-svn: 62920
* void* is represented as pointer to empty struct {}.Torok Edwin2009-01-241-0/+2
| | | | | | | Thus we need to check whether the struct is empty before trying to index into it. This fixes PR3381. llvm-svn: 62918
* Some cleanups. No functional changes.Owen Anderson2009-01-241-26/+34
| | | | llvm-svn: 62917
* Improve the inlining cost function a bit.Dale Johannesen2009-01-241-3/+6
| | | | | | Little practical effect. llvm-svn: 62908
* Make InstCombineStoreToCast handle aggregates more aggressively,Chris Lattner2009-01-241-18/+48
| | | | | | | handling the case in Transforms/InstCombine/cast-store-gep.ll, which is a heavily reduced testcase from Clang on x86-64. llvm-svn: 62904
* Refactor code. No functionality change.Evan Cheng2009-01-231-20/+38
| | | | llvm-svn: 62893
* Introduce two DWARF attribute extentions DW_AT_APPLE_optimized, ↵Devang Patel2009-01-233-2/+13
| | | | | | | | | | | | DW_AT_APPLE_flags. DW_AT_APPLE_optimized flag is set when a compile_unit is optimized. The debugger takes advantage of this information some way. DW_AT_APPLE_flags encodes command line options when certain env. variable is set. This is used by build engineers to track various gcc command lines used by by a project, irrespective of whether the project used makefile, Xcode or something else. llvm-gcc patch is next. llvm-svn: 62888
* hopefully address PR3379 by making the P modifier work in x86 inline asm.Chris Lattner2009-01-231-0/+3
| | | | llvm-svn: 62887
* use CallSite::isCalle instead of slow getOperandNoGabor Greif2009-01-231-3/+3
| | | | llvm-svn: 62877
* Simplify the logic of getting hold of a PHI predecessor block.Gabor Greif2009-01-234-10/+5
| | | | | | | | | There is now a direct way from value-use-iterator to incoming block in PHINode's API. This way we avoid the iterator->index->iterator trip, and especially the costly getOperandNo() invocation. Additionally there is now an assertion that the iterator really refers to one of the PHI's Uses. llvm-svn: 62869
OpenPOWER on IntegriCloud