summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Added a recursive loop stress test for the unwinder. Not a real world testGreg Clayton2011-01-072-0/+33
| | | | | | | by any means, but something to stress test our unwinder with 260,000+ frames on a standard darwin thread. llvm-svn: 123037
* Fix comment. INLINEASM node operand #3 is IsAlignStack bit.Evan Cheng2011-01-071-0/+1
| | | | llvm-svn: 123036
* Lower some BUILD_VECTORS using VEXT+shuffle.Bob Wilson2011-01-073-2/+196
| | | | | | Patch by Tim Northover. llvm-svn: 123035
* InstCombine: Match min/max hidden by sext/zextTobias Grosser2011-01-072-35/+152
| | | | | | | | | | | | | | | X = sext x; x >s c ? X : C+1 --> X = sext x; X <s C+1 ? C+1 : X X = sext x; x <s c ? X : C-1 --> X = sext x; X >s C-1 ? C-1 : X X = zext x; x >u c ? X : C+1 --> X = zext x; X <u C+1 ? C+1 : X X = zext x; x <u c ? X : C-1 --> X = zext x; X >u C-1 ? C-1 : X X = sext x; x >u c ? X : C+1 --> X = sext x; X <u C+1 ? C+1 : X X = sext x; x <u c ? X : C-1 --> X = sext x; X >u C-1 ? C-1 : X Instead of calculating this with mixed types promote all to the larger type. This enables scalar evolution to analyze this expression. PR8866 llvm-svn: 123034
* Some whitespace fixesTobias Grosser2011-01-071-24/+24
| | | | llvm-svn: 123033
* Appropriately truncate debug info range in dwarf output.Devang Patel2011-01-075-24/+63
| | | | | | Enable live debug variables pass. llvm-svn: 123032
* DBG_VALUE does not have any side effects; it also makes no sense to mark it ↵Evan Cheng2011-01-074-4/+9
| | | | | | cheap as a copy. llvm-svn: 123031
* Revert 122959, it needs more thought. Add it back to README.txt with ↵Benjamin Kramer2011-01-073-31/+22
| | | | | | additional notes. llvm-svn: 123030
* Modify disassemble_call_stack_python() to not rely on the "disassemble -n ↵Johnny Chen2011-01-071-1/+9
| | | | | | | | function_name" command to do the disassembly. Instead, use the Python API. llvm-svn: 123029
* Don't use -O3 on Mingw, as people report it as unreliable. Use -O2Oscar Fuentes2011-01-072-0/+16
| | | | | | instead. llvm-svn: 123028
* Simplify the allocation and freeing of Users' operand lists, now thatJay Foad2011-01-075-69/+4
| | | | | | every BranchInst has a fixed number of operands. llvm-svn: 123027
* Remove the "ugly" method BranchInst::setUnconditionalDest().Jay Foad2011-01-072-30/+0
| | | | llvm-svn: 123026
* Remove all uses of the "ugly" method BranchInst::setUnconditionalDest().Jay Foad2011-01-072-6/+9
| | | | llvm-svn: 123025
* Variadic templates example: a nearly-complete implementation of a TR1Douglas Gregor2011-01-072-1/+87
| | | | | | function class template. llvm-svn: 123024
* Fix crash in CFGBuilder on invalid code. We still needTed Kremenek2011-01-072-20/+33
| | | | | | | | | to reject this code, but at least clang doesn't crash anymore. Crash reported in PR 8880. llvm-svn: 123017
* Variadic templates example: a nearly-complete implementation of a TR1Douglas Gregor2011-01-071-0/+264
| | | | | | | | | | tuple class template. This implementation is boosted directly from the variadic templates proposal. N2080. Note that one section is #ifdef'd out. I'll implement that aspect of template argument deduction next. llvm-svn: 123016
* Revert r122955. It seems using movups to lower memcpy can cause massive ↵Evan Cheng2011-01-0711-79/+101
| | | | | | regression (even on Nehalem) in edge cases. I also didn't see any real performance benefit. llvm-svn: 123015
* When instantiating the arguments to an initializer, use theDouglas Gregor2011-01-073-30/+35
| | | | | | | TreeTransform version of TransformExprs() rather than explicit loop, so that we expand pack expansions properly. Test cast coming soon... llvm-svn: 123014
* Fix a valgrind error when transforming function prototypes withDouglas Gregor2011-01-071-0/+1
| | | | | | function parameter pack expansions. llvm-svn: 123007
* Add missing <stdint.h> to build properly on Solaris. Patch by Joakim JohanssonNick Kledzik2011-01-071-0/+1
| | | | llvm-svn: 123006
* Use -check-prefix to make it clear the test is SVR4/DARWINPPC specific.Roman Divacky2011-01-072-4/+4
| | | | llvm-svn: 123005
* Drop the _darwin/_svr4 suffixes.Roman Divacky2011-01-072-0/+0
| | | | llvm-svn: 123004
* Update AST reader/writer to handle new AppleKext.Fariborz Jahanian2011-01-076-3/+9
| | | | | | | | Fix an unexpected hickup caused by exceeding size of generated table (and a misleading comment). Improve on help message for -fapple-kext. llvm-svn: 123003
* Apply patch from Bruce Mitchener to fix spelling errors.Caroline Tice2011-01-071-2/+2
| | | | llvm-svn: 123002
* Rename lisp-like functions as suggested by Gabor Greif as loooong timeDavid Greene2011-01-0710-41/+41
| | | | | | ago. This is both easier to learn and easier to read. llvm-svn: 123001
* Implement substitution of a function parameter pack for its set ofDouglas Gregor2011-01-0710-51/+237
| | | | | | | | | | | | | | | | | | | | | | | | instantiated function parameters, enabling instantiation of arbitrary pack expansions involving function parameter packs. At this point, we can now correctly compile a simple, variadic print() example: #include <iostream> #include <string> void print() {} template<typename Head, typename ...Tail> void print(const Head &head, const Tail &...tail) { std::cout << head; print(tail...); } int main() { std::string hello = "Hello"; print(hello, ", world!", " ", 2011, '\n'); } llvm-svn: 123000
* Try to unbreak the arm buildbot.Benjamin Kramer2011-01-071-1/+1
| | | | llvm-svn: 122999
* Add testcases for PR8411 (vget_low and vget_high implemented as shuffles).Bob Wilson2011-01-071-1/+37
| | | | llvm-svn: 122997
* Added memory caching to lldb_private::Process. All lldb_private::ProcessGreg Clayton2011-01-074-4/+265
| | | | | | | | | | | | | | | | | | subclasses will automatically be able to take advantage of caching. The cache line size is set to 512 by default. This greatly speeds up stack backtraces on MacOSX when using the ProcessGDBRemote process plug-in since only about 6300 packets per second can be sent. Initial speedups show: Prior to caching: 10,000 stack frames took 5.2 seconds After caching: 10,000 stack frames in 240 ms! About a 20x speedup! llvm-svn: 122996
* Add ARM patterns to match EXTRACT_SUBVECTOR nodes.Bob Wilson2011-01-076-4/+30
| | | | | | | | | | | | | | | Also fix an off-by-one in SelectionDAGBuilder that was preventing shuffle vectors from being translated to EXTRACT_SUBVECTOR. Patch by Tim Northover. The test changes are needed to keep those spill-q tests from testing aligned spills and restores. If the only aligned stack objects are spill slots, we no longer realign the stack frame. Prior to this patch, an EXTRACT_SUBVECTOR was legalized by loading from the stack, which created an aligned frame index. Now, however, there is nothing except the spill slot in the stack frame, so I added an aligned alloca. llvm-svn: 122995
* Fix a comment typo.Bob Wilson2011-01-071-1/+1
| | | | llvm-svn: 122994
* Change EXTRACT_SUBVECTOR to require a constant index.Bob Wilson2011-01-072-34/+18
| | | | | | | | We were never generating any of these nodes with variable indices, and there was one legalizer function asserting on a non-constant index. If we ever have a need to support variable indices, we can add this back again. llvm-svn: 122993
* Prefix all attribute enumerators with attr_ for consistency.Francois Pichet2011-01-072-17/+17
| | | | llvm-svn: 122992
* Do not use cdecl, fastcall, stdcall etc.. as identifier name. They are ↵Francois Pichet2011-01-072-12/+12
| | | | | | reserved keywords at least on MSVC. llvm-svn: 122991
* Early exit if we don't have invokes. The 'Unwinds' vector isn't modified unlessBill Wendling2011-01-071-219/+219
| | | | | | we have invokes, so there is no functionality change here. llvm-svn: 122990
* Added the ability for Target::ReadMemory to prefer to read from the fileGreg Clayton2011-01-075-19/+74
| | | | | | | | cache even when a valid process exists. Previously, Target::ReadMemory would read from the process if there was a valid one and then fallback to the object file cache. llvm-svn: 122989
* Rework a few things about how we emit ObjC's for enumeration statement.John McCall2011-01-071-95/+126
| | | | | | | | | | In particular, the iteration variable (if present) should be created and destroyed in a narrow span around the loop body, and the body should be emitted in a cleanup scope in case it's not a compound statement. Otherwise, rename a few variables and use phis instead of temporary variables for the index and buffer count. llvm-svn: 122988
* Add all options needed to support -fapple-kext. wip.Fariborz Jahanian2011-01-075-4/+33
| | | | llvm-svn: 122987
* Factor out the template transformation of a sequence of functionDouglas Gregor2011-01-077-40/+115
| | | | | | | | | parameters into parameter types, so that substitution of explicitly-specified function template arguments uses the same path. This enables the use of explicitly-specified function template arguments with variadic templates. llvm-svn: 122986
* Print out a more meaningful exception message when/if CFBundleVersion ↵Johnny Chen2011-01-071-1/+2
| | | | | | matching failed. llvm-svn: 122985
* Fix a few small issues in r122981 to ensure compilation on Linux.Stephen Wilson2011-01-072-5/+7
| | | | | | | Also, call GetProcess instead of CalculateProcess as the latter is morally part of the ExecutionContextScope API. llvm-svn: 122984
* Fix the other problem reported in PR8582. Testcase and patch byDuncan Sands2011-01-062-0/+24
| | | | | | Nadav Rotem. llvm-svn: 122983
* Add a testcase for PR8582, which mysteriously fixed itself, in case the problemDuncan Sands2011-01-061-0/+15
| | | | | | comes back some day. llvm-svn: 122982
* First try at patching linux for the recent RegisterContext patch. Can someoneGreg Clayton2011-01-065-34/+52
| | | | | | try and build this and let me know how it goes? llvm-svn: 122981
* Add target triple.Devang Patel2011-01-061-1/+1
| | | | llvm-svn: 122980
* Add some fairly duplicated code to let type legalization split illegalEric Christopher2011-01-063-0/+141
| | | | | | typed atomics. This will lower exclusively to libcalls at the moment. llvm-svn: 122979
* With Benjamin's recent amazing patches, we should be able to do even better ↵Chris Lattner2011-01-061-0/+13
| | | | | | things :) llvm-svn: 122978
* use isNullValue() to simplify code, add an assert.Chris Lattner2011-01-061-5/+6
| | | | llvm-svn: 122977
* Fixed issues with RegisterContext classes and the subclasses. There wasGreg Clayton2011-01-0651-292/+293
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | an issue with the way the UnwindLLDB was handing out RegisterContexts: it was making shared pointers to register contexts and then handing out just the pointers (which would get put into shared pointers in the thread and stack frame classes) and cause double free issues. MallocScribble helped to find these issues after I did some other cleanup. To help avoid any RegisterContext issue in the future, all code that deals with them now returns shared pointers to the register contexts so we don't end up with multiple deletions. Also now that the RegisterContext class doesn't require a stack frame, we patched a memory leak where a StackFrame object was being created and leaked. Made the RegisterContext class not have a pointer to a StackFrame object as one register context class can be used for N inlined stack frames so there is not a 1 - 1 mapping. Updates the ExecutionContextScope part of the RegisterContext class to never return a stack frame to indicate this when it is asked to recreate the execution context. Now register contexts point to the concrete frame using a concrete frame index. Concrete frames are all of the frames that are actually formed on the stack of a thread. These concrete frames can be turned into one or more user visible frames due to inlining. Each inlined stack frame has the exact same register context (shared via shared pointers) as any parent inlined stack frames all the way up to the concrete frame itself. So now the stack frames and the register contexts should behave much better. llvm-svn: 122976
* Makefile updates.Stephen Wilson2011-01-062-7/+5
| | | | | | | Update lib/Makefile to use current LLVM and Clang components and add the PluginUtility library to the build. llvm-svn: 122975
OpenPOWER on IntegriCloud