summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Respect the -tail-dup-size command line option even when optimizing for size.Jakob Stoklund Olesen2011-01-301-1/+2
| | | | | | | This is similar to the -unroll-threshold option. There should be no change in behavior when -tail-dup-size is not explicit on the llc command line. llvm-svn: 124564
* Added the start of the plug-in interface to EmulateInstructionGreg Clayton2011-01-303-5/+98
| | | | | | and implemented it for the EmulateInstructionARM class. llvm-svn: 124563
* Added some documentation that describes the purpose and the goalsGreg Clayton2011-01-301-1/+90
| | | | | | of the EmulateInstruction class. llvm-svn: 124562
* Commit 124487 broke 254.gap. See if disabling the part that might be triggeredDuncan Sands2011-01-302-9/+5
| | | | | | by PR9088 fixes things. llvm-svn: 124561
* Transform (X/Y)*Y into X if the division is exact. Instcombine already ↵Duncan Sands2011-01-302-0/+27
| | | | | | | | | | | | knows how to do this and more, but would only do it if X/Y had only one use. Spotted as the most common missed simplification in SPEC by my auto-simplifier, now that it knows about nuw/nsw/exact flags. This removes a bunch of multiplications from 447.dealII and 483.xalancbmk. It also removes a lot from tramp3d-v4, which results in much more inlining. llvm-svn: 124560
* Teach DAGCombine to fold fold (sra (trunc (sr x, c1)), c2) -> (trunc (sra x, ↵Benjamin Kramer2011-01-303-21/+32
| | | | | | | | | | | | | | | | | | c1+c2) when c1 equals the amount of bits that are truncated off. This happens all the time when a smul is promoted to a larger type. On x86-64 we now compile "int test(int x) { return x/10; }" into movslq %edi, %rax imulq $1717986919, %rax, %rax movq %rax, %rcx shrq $63, %rcx sarq $34, %rax <- used to be "shrq $32, %rax; sarl $2, %eax" addl %ecx, %eax This fires 96 times in gcc.c on x86-64. llvm-svn: 124559
* Add hardcoded -L/usr/lib after all -L options to the FreeBSD linkerRoman Divacky2011-01-302-1/+2
| | | | | | | | invocation. This mimics what gcc does and fixes libtool check for libraries. llvm-svn: 124558
* Fix 'fcmp one' constant folding. Noticed by inspection.Nick Lewycky2011-01-301-1/+1
| | | | llvm-svn: 124557
* Fix some formatting and upgrade comments from llvm 1.x to 2.x syntax.Nick Lewycky2011-01-301-6/+6
| | | | llvm-svn: 124556
* Fix test.Anders Carlsson2011-01-291-2/+2
| | | | llvm-svn: 124555
* Remove dead code.Anders Carlsson2011-01-291-57/+3
| | | | llvm-svn: 124554
* When emitting RTTI for a non-class type, compute the visibility of the RTTI ↵Anders Carlsson2011-01-293-12/+17
| | | | | | data based on the explicit visibility of the type. llvm-svn: 124553
* This is #included by .c files. Remove C++-style comments.Bill Wendling2011-01-291-1/+1
| | | | llvm-svn: 124552
* Support for -plugin-arg- with -add-pluginNico Weber2011-01-293-2/+17
| | | | llvm-svn: 124551
* Move GetLLVMVisibility to CodeGenModule.Anders Carlsson2011-01-292-11/+10
| | | | llvm-svn: 124550
* Update tests.Anders Carlsson2011-01-292-2/+2
| | | | | | I'm still not sure if having the typenames be visible with -hidden-weak-vtables, but I think it makes sense. llvm-svn: 124549
* Add RTTIBuilder::GetAddrOfTypeName which uses the newly added ↵Anders Carlsson2011-01-292-5/+42
| | | | | | | | CreateOrReplaceCXXRuntimeVariable. Set the visibility for typeinfo names. llvm-svn: 124548
* Add the select optimization recently added to instcombine to constant folding.Nick Lewycky2011-01-292-0/+21
| | | | | | | This is the one where one of the branches of the select is another select on the same condition. llvm-svn: 124547
* Change CodeGenModule::setTypeVisibility to take a TypeVisibilityKind enum ↵Anders Carlsson2011-01-295-6/+16
| | | | | | instead of an "IsForRTTI" flag. llvm-svn: 124546
* Unbreak the MSVC build.Francois Pichet2011-01-291-0/+1
| | | | | | The DEBUG() call at line 606 demands to see raw_ostream's definition. I have no idea why this seems to only break MSVC. llvm-svn: 124545
* Fix comment.Nick Lewycky2011-01-291-1/+1
| | | | llvm-svn: 124544
* Add a test for RTTI visibility.Anders Carlsson2011-01-291-0/+35
| | | | llvm-svn: 124543
* Replace an isa/cast with a dyn_cast.Anders Carlsson2011-01-291-2/+2
| | | | llvm-svn: 124542
* Get rid of an unneeded parameter from setGlobalVisibility.Anders Carlsson2011-01-293-10/+7
| | | | llvm-svn: 124541
* Give VTTs the right visibility.Anders Carlsson2011-01-292-1/+6
| | | | llvm-svn: 124540
* Make emitting a VTT a two-step process, much like emitting a VTable. You ↵Anders Carlsson2011-01-296-54/+49
| | | | | | first get the address of the VTT, and then pass it to EmitVTTDefinition. llvm-svn: 124539
* Use CGM.CreateOrReplaceCXXRuntimeVariable in CGVTables.cppAnders Carlsson2011-01-292-48/+5
| | | | llvm-svn: 124538
* Add a new function, to be used by CGRTTI, CGVTables and CGVTT (which each ↵Anders Carlsson2011-01-292-0/+47
| | | | | | has their own copy of this code). llvm-svn: 124537
* Replace a literal '8' with getCharWidth().Ken Dyck2011-01-291-2/+3
| | | | llvm-svn: 124536
* Call SimplifyFDivInst() in InstCombiner::visitFDiv().Frits van Bommel2011-01-292-0/+10
| | | | llvm-svn: 124535
* Move InstCombine's knowledge of fdiv to SimplifyInstruction().Frits van Bommel2011-01-295-18/+47
| | | | llvm-svn: 124534
* Fix typo: should have been testing that X was odd, not V.Duncan Sands2011-01-292-3/+27
| | | | llvm-svn: 124533
* Add the missing sub identity "A-(A-B) -> B" to DAGCombine.Benjamin Kramer2011-01-291-0/+3
| | | | | | | | This happens e.g. for code like "X - X%10" where we lower the modulo operation to a series of multiplies and shifts that are then subtracted from X, leading to this missed optimization. llvm-svn: 124532
* Bumped Xcode project versions to lldb-46 and debugserver-131.Greg Clayton2011-01-293-16/+16
| | | | llvm-svn: 124531
* Finished up the async attach support. This allows us to request to attachGreg Clayton2011-01-298-190/+132
| | | | | | | by name or by pid (with or without waiting for a process to launch) and catch the response asynchronously. llvm-svn: 124530
* Remove IsDefinition from CodeGenModule::setTypeVisibility; it is always true.Anders Carlsson2011-01-294-6/+5
| | | | llvm-svn: 124529
* When trying to get the most derived class, don't assume that we can ignore ↵Anders Carlsson2011-01-292-1/+29
| | | | | | all casts. We can only ignore derived-to-base and no-op casts. Fixes selfhost. llvm-svn: 124528
* Add a test for TCE return duplication.Evan Cheng2011-01-292-0/+25
| | | | llvm-svn: 124527
* Re-apply r124518 with fix. Watch out for invalidated iterator.Evan Cheng2011-01-2913-73/+226
| | | | llvm-svn: 124526
* The m_next_action is simpler if it is an auto_pointer.Jim Ingham2011-01-292-13/+9
| | | | llvm-svn: 124525
* When calling a virtual member function on a base class and the most derived ↵Anders Carlsson2011-01-292-1/+38
| | | | | | class is marked 'final', we can devirtualize the call. llvm-svn: 124524
* When doing a derived-to-base class through a virtual class, we don't have to ↵Anders Carlsson2011-01-292-2/+27
| | | | | | get the vbase offset from the vtable if the derived class is marked final. llvm-svn: 124523
* Revert r124518. It broke Linux self-host.Evan Cheng2011-01-2913-223/+73
| | | | llvm-svn: 124522
* Handle the case where the "NextEventAction" wants to kill us on some event ↵Jim Ingham2011-01-291-2/+11
| | | | | | other than eStateExited. llvm-svn: 124521
* Added a completion action class to the Process events so that we can make ↵Jim Ingham2011-01-293-89/+208
| | | | | | things like Attach and later Launch start their job, and then return to the event loop while waiting for the work to be done. llvm-svn: 124520
* Re-commit r124462 with fixes. Tail recursion elim will now dup ret into ↵Evan Cheng2011-01-2913-73/+223
| | | | | | unconditional predecessor to enable TCE on demand. llvm-svn: 124518
* Added comment.Johnny Chen2011-01-291-1/+1
| | | | llvm-svn: 124517
* Add a "-D" option to the test driver which dumps the Python sys.path variableJohnny Chen2011-01-291-0/+11
| | | | | | | to be used for the test run. Could be useful for debugging the setup of the test environment. llvm-svn: 124516
* Implementation of path profiling.Andrew Trick2011-01-2923-51/+3423
| | | | | | | | | | Modified patch by Adam Preuss. This builds on the existing framework for block tracing, edge profiling and optimal edge profiling. See -help-hidden for new flags. For documentation, see the technical report "Implementation of Path Profiling..." in llvm.org/pubs. llvm-svn: 124515
* Most browsers eliminate whitespace between anchor tags. Force whitespace withNick Lewycky2011-01-291-1/+1
| | | | | | &nbsp; so that the code reads properly. llvm-svn: 124514
OpenPOWER on IntegriCloud