summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* SpillPlacement: fix a bug in iterate.Manman Ren2014-02-282-2/+296
| | | | | | | | | | | Inside iterate, we scan backwards then scan forwards in a loop. When iteration is not zero, the last node was just updated so we can skip it. But when iteration is zero, we can't skip the last node. For the testing case, fixing this will save a spill and move register copies from hot path to cold path. llvm-svn: 202557
* [CMake] Remove dead C backend optionReid Kleckner2014-02-281-5/+0
| | | | | | Patch by Jevin Sweval! llvm-svn: 202556
* Reflow isProfitableToMakeFastCCReid Kleckner2014-02-281-1/+2
| | | | llvm-svn: 202555
* Jumped the gun with r202551 and broke some bots that weren't yet C++11ified.Lang Hames2014-02-2811-1536/+1928
| | | | | | Reverting until the C++11 switch is complete. llvm-svn: 202554
* [analyzer] Fix for PR18394.Anton Yartsev2014-02-282-2/+23
| | | | | | Additional conditions that prevent useful nodes before call from being reclaimed. llvm-svn: 202553
* Better error reporting when a variable can't beSean Callanan2014-02-2813-27/+117
| | | | | | | | | | | read during materialization. First of all, report if we can't read the data for some reason. Second, consult the ValueObject's error and report that if there's some problem. <rdar://problem/16074201> llvm-svn: 202552
* New PBQP solver, and updates to the PBQP graph.Lang Hames2014-02-2811-1928/+1536
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous PBQP solver was very robust but consumed a lot of memory, performed a lot of redundant computation, and contained some unnecessarily tight coupling that prevented experimentation with novel solution techniques. This new solver is an attempt to address these shortcomings. Important/interesting changes: 1) The domain-independent PBQP solver class, HeuristicSolverImpl, is gone. It is replaced by a register allocation specific solver, PBQP::RegAlloc::Solver (see RegAllocSolver.h). The optimal reduction rules and the backpropagation algorithm have been extracted into stand-alone functions (see ReductionRules.h), which can be used to build domain specific PBQP solvers. This provides many more opportunities for domain-specific knowledge to inform the PBQP solvers' decisions. In theory this should allow us to generate better solutions. In practice, we can at least test out ideas now. As a side benefit, I believe the new solver is more readable than the old one. 2) The solver type is now a template parameter of the PBQP graph. This allows the graph to notify the solver of any modifications made (e.g. by domain independent rules) without the overhead of a virtual call. It also allows the solver to supply policy information to the graph (see below). 3) Significantly reduced memory overhead. Memory management policy is now an explicit property of the PBQP graph (via the CostAllocator typedef on the graph's solver template argument). Because PBQP graphs for register allocation tend to contain many redundant instances of single values (E.g. the value representing an interference constraint between GPRs), the new RASolver class uses a uniquing scheme. This massively reduces memory consumption for large register allocation problems. For example, looking at the largest interference graph in each of the SPEC2006 benchmarks (the largest graph will always set the memory consumption high-water mark for PBQP), the average memory reduction for the PBQP costs was 400x. That's times, not percent. The highest was 1400x. Yikes. So - this is fixed. "PBQP: No longer feasting upon every last byte of your RAM". Minor details: - Fully C++11'd. Never copy-construct another vector/matrix! - Cute tricks with cost metadata: Metadata that is derived solely from cost matrices/vectors is attached directly to the cost instances themselves. That way if you unique the costs you never have to recompute the metadata. 400x less memory means 400x less cost metadata (re)computation. Special thanks to Arnaud de Grandmaison, who has been the source of much encouragement, and of many very useful test cases. This new solver forms the basis for future work, of which there's plenty to do. I will be adding TODO notes shortly. - Lang. llvm-svn: 202551
* [PECOFF] Sort SEH table entries according to its value.Rui Ueyama2014-02-283-3/+24
| | | | | | | | | It looks like the contents of the table need to be sorted according to its value, so that the runtime can find the entry by binary search. I'm not 100% sure if we really have to do that, but at least I can say it's safe to do because the contents of .sxdata is just a list of exception handlers' RVAs. llvm-svn: 202550
* Simplify POSIXThread register context handlingEd Maste2014-02-281-30/+38
| | | | | | | | | | | This seems a little more straightforward and is equivalent to r201457 for ELF core files. A case for FreeBSD i386 is also added (it was incorrectly using the 64-bit register context and corrupting mememory). Better (user-facing) error handling is still needed. Review: http://llvm-reviews.chandlerc.com/D2765 llvm-svn: 202549
* [docs] Clarify that there isn't much to be done other than watch buildChandler Carruth2014-02-281-0/+5
| | | | | | | | | | | | bots when using the standard library facilities. The missing pieces here aren't always in useful discreet chunks. Fortunately, the missing pieces are few and far between, and we can emulate most of them in our headers as needed. Based on feedback from Lang and Dave. llvm-svn: 202548
* Fixed configure-based build on OS X.Todd Fiala2014-02-282-1/+2
| | | | | | | | | | | | | This change adds a missing include path to the ObjC LanguageRuntime path to the MacOSX SystemRuntime plugin's Makefile. It also adds the panel and curses library to the liblldb shared library linkage step. Changes by Jevin Sweval with a minor tweak. llvm-svn: 202547
* [C++11] Switch autoconf and make to use C++11 by default. Now both buildChandler Carruth2014-02-282-4/+4
| | | | | | | | | | systems have the default as C++11, but retain the ability to build with C++98. Again, please restrain your enthusiasm a bit in case this needs to be reverted. =] llvm-svn: 202546
* Fix >> to be > > for non-c++11.Eric Christopher2014-02-281-1/+1
| | | | llvm-svn: 202545
* R600: Verify all instructions in the AsmPrinter on debug buildsTom Stellard2014-02-281-0/+7
| | | | | | | Make a call to R600's implementation of verifyInstruction() to check that instructions are only using legal operands. llvm-svn: 202544
* R600/SI: Expand all v16[if]32 operationsTom Stellard2014-02-282-1/+41
| | | | llvm-svn: 202543
* [C++11] Switch CMake to use C++11 by default! Next up, autoconf/make!Chandler Carruth2014-02-281-1/+1
| | | | | | | | | Now, please don't get too excited. I've just toggled the default to suss out the last remaining bot problems. This does *not* mean we can all go write lots of C++11 code yet. I at least want to let the dust settle from the bots first. llvm-svn: 202542
* 80-col.Eric Christopher2014-02-281-1/+2
| | | | llvm-svn: 202541
* Fix a crasher where when we're attempting to replace a typeEric Christopher2014-02-282-5/+8
| | | | | | | | | | during the finalization for CGDebugInfo in clang we would RAUW a type and it would result in a corrupted MDNode for an imported declaration. Testcase pending as reducing has been difficult. llvm-svn: 202540
* Reapply fixed "Honour 'use-external-names' in FileManager"Ben Langmuir2014-02-2813-19/+97
| | | | | | | | | | | | | | | | Was r202442 There were two issues with the original patch that have now been fixed. 1. We were memset'ing over a FileEntry in a test case. After adding a std::string to FileEntry, this still happened to not break for me. 2. I didn't pass the FileManager into the new compiler instance in compileModule. This was hidden in some cases by the fact I didn't clear the module cache in the test. Also, I changed the copy constructor for FileEntry, which was memcpy'ing in a (now) unsafe way. llvm-svn: 202539
* Add more whitespace to fix more bullets.Richard Smith2014-02-281-0/+2
| | | | llvm-svn: 202538
* Add whitespace to try to fix bulleted list.Richard Smith2014-02-281-0/+1
| | | | llvm-svn: 202537
* Be sure to propagate the error back out SBTarget::Attach() when we fail to ↵Greg Clayton2014-02-281-22/+25
| | | | | | | | launch debugserver as root. <rdar://problem/15669788> llvm-svn: 202536
* Fixed "process launch --tty" on MacOSX.Greg Clayton2014-02-281-8/+8
| | | | llvm-svn: 202535
* Tests for lexing of digit separators versus UCNs.Richard Smith2014-02-281-0/+20
| | | | llvm-svn: 202534
* Fix a minor bug in lexing pp-numbers with digit separators: if a pp-number ↵Richard Smith2014-02-282-0/+3
| | | | | | contains "'e+", the pp-number ends between the 'e' and the '+'. llvm-svn: 202533
* Fix some links to C++11 feature papers in the Coding StandardsBen Langmuir2014-02-281-16/+16
| | | | llvm-svn: 202532
* add missing 3.4 releaseGabor Greif2014-02-281-0/+1
| | | | llvm-svn: 202531
* CommandLine: Exit successfully for -version and -helpJustin Bogner2014-02-282-4/+4
| | | | | | | | | | | Tools that use the CommandLine library currently exit with an error when invoked with -version or -help. This is unusual and non-standard, so we'll fix them to exit successfully instead. I don't expect that anyone relies on the current behaviour, so this should be a fairly safe change. llvm-svn: 202530
* When completing Objective-C instance method invocations, perform a ↵Anders Carlsson2014-02-282-1/+54
| | | | | | contextual conversion to an Objective-C pointer type of the target expression if needed. This fixes code completion of method invocations where the target is a smart pointer that has an explicit conversion operator to an Objective-C type. llvm-svn: 202529
* Test commitAdam Nemet2014-02-281-0/+1
| | | | llvm-svn: 202528
* [PECOFF] Set "Exception Table" field in PE32+ header.Rui Ueyama2014-02-283-0/+196
| | | | llvm-svn: 202527
* Fixed operand of SC microMIPS instruction.Zoran Jovanovic2014-02-283-1/+23
| | | | llvm-svn: 202526
* Fixed all overlapping prompt issues.Greg Clayton2014-02-284-100/+143
| | | | | | | | I carefully reviewed exactly how the IOHandlers interact and found places where we weren't properly controlling things. There should be no overlapping prompts and all output should now come out in a controlled fashion. <rdar://problem/16111293> llvm-svn: 202525
* Drop libtool from llvm.Rafael Espindola2014-02-2813-35253/+69
| | | | | | | We were only using it so find the shared library extension and nm. There are simpler ways to do those things :-) llvm-svn: 202524
* Fixed encoding of SYSCALL microMIPS instruction.Zoran Jovanovic2014-02-282-6/+6
| | | | llvm-svn: 202523
* Converted TestDeadStrip.py to be expected failure on Linux.Todd Fiala2014-02-281-1/+1
| | | | llvm-svn: 202522
* Revert revision 202518 because of wrong commit message.Zoran Jovanovic2014-02-282-6/+6
| | | | llvm-svn: 202521
* Don't suggest non-static methods as corrections when they obviouslyKaelyn Uhrain2014-02-284-7/+41
| | | | | | | won't work (i.e. when not doing a member lookup and not in a method from the same class or a descendant class). llvm-svn: 202520
* Removing some unused functionality.Aaron Ballman2014-02-281-34/+0
| | | | llvm-svn: 202519
* Fix operand of SC instruction.Zoran Jovanovic2014-02-282-6/+6
| | | | llvm-svn: 202518
* Adjust TestExprDoesntBlock.py to be expected failure on Linux.Todd Fiala2014-02-281-1/+1
| | | | | | | | I suspect I may have misrun the test previously for check-in r202456 re: pr15258. This test fails consistently on my end. I changed the test to expected failure on Linux. llvm-svn: 202517
* Enabled TestSetWatchlocation.py on Linux.Todd Fiala2014-02-281-1/+0
| | | | | | | This worked 25 out of 25 times for me on Ubuntu 12.04 LTS x86_64 built with gcc 4.8.2 and the July 2013 libedit. llvm-svn: 202516
* Converted TestRegisterVariables to run on Linux and skip with clang.Todd Fiala2014-02-281-1/+1
| | | | | | | | TestRegisterVariables.test_with_dwarf_and_run_command was being skipped on Linux due to issues with clang. I converted it to a @expectedFailureClang and no longer skip on Linux. llvm-svn: 202515
* Converted TestConstVariables expected failure to @expectedFailureClang.Todd Fiala2014-02-281-2/+1
| | | | | | | | | TestConstVariables.py was disabled on Linux and marked as unconditional expected failure. This change removes the Linux disable and makes the expected failure conditional on using clang. The test runs fine on gcc-built lldb. llvm-svn: 202514
* Restore signal delivery to the inferior on FreeBSDEd Maste2014-02-282-7/+5
| | | | | | | This was broken in the threaded inferior implementation for FreeBSD (r196787) and caused FreeBSD to resume always with no signal. llvm-svn: 202513
* Enable TestExitDuringBreak.test_with_dwarf on Linux.Todd Fiala2014-02-281-1/+0
| | | | | | | | | | This test passed 50 out of 50 times for me on Unbuntu 12.04 LTS x86_64 with lldb built using gcc 4.8.2 and July 2013 libedit. This is related to: http://llvm.org/bugs/show_bug.cgi?id=16170 llvm-svn: 202512
* Adjust TestConcurrentEvents.py test running for Linux.Todd Fiala2014-02-281-21/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Related to this bug: http://llvm.org/bugs/show_bug.cgi?id=16714 On TOT lldb svn r202507, I found several of the tests disabled within TestConcurrentEvents.py to run fine, and several of them to fail 100% of the time on my system (25 out of 25 times). This changes the following tests for Linux: Enables (these all work consistently): * test_many_watchpoints_dwarf * test_signal_watch_break_dwarf (line 250) * test_signal_watch_break_dwarf (line 260 - same named test?) * test_crash_with_watchpoint_dwarf * test_crash_with_watchpoint_breakpoint_signal_dwarf * test_delayed_crash_with_breakpoint_watchpoint_dwarf Marks as expected failure (these all fail consistently): * test_many_watchpoints_dwarf * test_watch_break_dwarf * test_delay_watch_break_dwarf * test_watch_break_dwarf_delay * test_signal_watch_dwarf * test_delay_signal_watch_dwarf * test_signal_delay_watch_dwarf * test_two_breakpoints_one_watchpoint_dwarf * test_breakpoints_delayed_breakpoint_one_watchpoint_dwarf * test_two_watchpoint_threads_dwarf * test_watchpoint_with_delay_watchpoint_threads_dwarf * test_two_watchpoints_one_breakpoint_dwarf * test_two_watchpoints_one_delay_breakpoint_dwarf * test_watchpoint_delay_watchpoint_one_breakpoint_dwarf * test_two_watchpoints_one_signal_dwarf * test_signal_watch_break_dwarf llvm-svn: 202511
* With rpaths being set correctly, SHLIBPATH_VAR is not needed anymore.Rafael Espindola2014-02-2811-53/+6
| | | | llvm-svn: 202510
* Correctly set rpath for unittests.Rafael Espindola2014-02-281-0/+6
| | | | | | | This lets us run the unittest from the command line without setting LD_LIBRARY_PATH. llvm-svn: 202509
* Enabled TestBreakAfterJoin.py on Linux.Todd Fiala2014-02-281-1/+0
| | | | | | | | | | This is related to: http://llvm.org/bugs/show_bug.cgi?id=16170 This test ran successfully 40 out of 40 times on Ubuntu 12.04 LTS x86_64. llvm-svn: 202508
OpenPOWER on IntegriCloud