summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* enhance the logic for looking through tailcalls to look through transparent ↵Chris Lattner2012-06-012-1/+67
| | | | | | | | | casts in multiple-return value scenarios, like what happens on X86-64 when returning small structs. llvm-svn: 157800
* Tidy up. Remove trailing spaces and fix the worst of the 80 column violations.Craig Topper2012-06-011-74/+90
| | | | llvm-svn: 157799
* enhance getNoopInput to know about vector<->vector bitcasts of legalChris Lattner2012-06-012-10/+60
| | | | | | | | types, as well as int<->ptr casts. This allows us to tailcall functions with some trivial casts between the call and return (i.e. because the return types disagree). llvm-svn: 157798
* add some simple 64-bit tail call tests.Chris Lattner2012-06-011-0/+21
| | | | llvm-svn: 157797
* rearrange some logic, no functionality change.Chris Lattner2012-06-011-24/+32
| | | | llvm-svn: 157796
* merge some tests.Chris Lattner2012-06-013-13/+13
| | | | llvm-svn: 157795
* rename testChris Lattner2012-06-011-0/+0
| | | | llvm-svn: 157794
* ARM: support struct byval in llvmManman Ren2012-06-013-15/+279
| | | | | | | | | | We handle struct byval by inserting a pseudo op, which will be expanded to a loop at ExpandISelPseudos. A separate patch for clang will be submitted to enable struct byval. rdar://9877866 llvm-svn: 157793
* Register the ProcessGDBRemote plugin ahead of the ProcessKDP pluginJason Molenda2012-06-011-2/+2
| | | | | | | so a process connect without any plugin specified picks up the gdb-remote plugin by default. llvm-svn: 157792
* When the Platform launches a process for debugging, make sure it goes into a ↵Jim Ingham2012-06-014-1/+27
| | | | | | | | separate process group, otherwise ^C will both cause us to try to Stop it manually, AND send it a SIGINT, which can confuse us. rdar://problem/11369230 llvm-svn: 157791
* If the Driver's input reader gets an Interrupt and the current command line ↵Jim Ingham2012-06-011-4/+13
| | | | | | is empty, then treat that interrupt as an instruction to Stop the process of the currently selected target. llvm-svn: 157790
* Add an API to determine whether there are any characters on the current ↵Jim Ingham2012-06-012-0/+14
| | | | | | input line. llvm-svn: 157789
* Fix 80 columns.Michael J. Spencer2012-06-011-3/+6
| | | | llvm-svn: 157788
* Support C++11 enum forward declarations.Eric Christopher2012-06-012-1/+5
| | | | | | Part of rdar://11570854 llvm-svn: 157787
* Add support for enum forward declarations.Eric Christopher2012-06-014-9/+34
| | | | | | Part of rdar://11570854 llvm-svn: 157786
* [arcmt] Use CFBridgingRetain/CFBridgingRelease instead of ↵Argyrios Kyrtzidis2012-06-018-42/+99
| | | | | | | | | | __bridge_retained/__bridge_transfer when migrating. rdar://11569198 llvm-svn: 157785
* Anonymous union members within a struct are now properly handled as an ↵Aaron Ballman2012-06-012-1/+14
| | | | | | unevaluated field in C++11 mode. This fixes PR12866. llvm-svn: 157784
* Put the shiny new MCSubRegIterator to work.Chad Rosier2012-06-011-8/+6
| | | | llvm-svn: 157783
* In TypoCorrectionConsumer, BestResults to CorrectionResults to lessenKaelyn Uhrain2012-05-311-14/+19
| | | | | | | | | | the confusion among all of the uses of Best* in relation to the set of possible typo correction results. Also add a method to return the set of typo corrections that have the single best edit distance--it returns the second half of the first pair in TypoEditDistanceMap (with getBestEditDistance already returning the first half). llvm-svn: 157781
* objc: properties of NSObject attribute mustFariborz Jahanian2012-05-312-2/+20
| | | | | | | have correct pointer type or issue error, instead of crashing in IRGen. // rdar:// 11569860 llvm-svn: 157780
* Fix dangling else clause. Bug found and fixed by Dimitry Andric.Howard Hinnant2012-05-311-0/+4
| | | | llvm-svn: 157779
* For hardware watchpoint enable/disable, in case the kernel call to set the ↵Johnny Chen2012-05-312-1/+13
| | | | | | revised debug state fails, we need to recover the local cache to the previous known state. llvm-svn: 157778
* add -bounds-checking-multiple-traps option to make one trap BB per checkNuno Lopes2012-05-312-1/+17
| | | | | | disabled by default for now; we can discusse the default value (& name) later llvm-svn: 157777
* Thread-hardening the SB API calls related to watchpoint operations.Johnny Chen2012-05-312-0/+15
| | | | llvm-svn: 157776
* revamp BoundsChecking considerably:Nuno Lopes2012-05-312-130/+231
| | | | | | | | | | | | - compute size & offset at the same time. The side-effects of this are that we now support negative GEPs. It's now approaching a phase that it can be reused by other passes (e.g., lowering of the objectsize intrinsic) - use APInt throughout to handle wrap-arounds - add support for PHI instrumentation - add a cache (required for recursive PHIs anyway) - remove hoisting support for now, since it was wrong in a few cases sorry for the churn here.. tests will follow soon. llvm-svn: 157775
* Major refactoring: Remove Platform concept. In its place there are Nick Kledzik2012-05-3174-1705/+2848
| | | | | | | | now Reader and Writer subclasses for each file format. Each Reader and Writer subclass defines an "options" class which controls how that Reader or Writer operates. llvm-svn: 157774
* IntrusiveRefCntPtr: Simplify operator= as suggested by Richard Smith.Benjamin Kramer2012-05-311-30/+2
| | | | | | This way the constructors do all the hard work. No intended functionality change. llvm-svn: 157773
* [analyzer] Fix BugType memory leak in IdempotentOperationChecker.Tom Care2012-05-311-1/+4
| | | | llvm-svn: 157772
* <rdar://problem/11486302>Greg Clayton2012-05-311-51/+59
| | | | | | Improve logging a bit. llvm-svn: 157771
* Added the ability to run "symbolicate [options] <crashlog-index>" in ↵Greg Clayton2012-05-311-98/+123
| | | | | | interactive mode. llvm-svn: 157770
* Fix a bunch of thinko's in the command "thread continue".Jim Ingham2012-05-311-7/+33
| | | | | | rdar://problem/11562050 llvm-svn: 157767
* When we are preparing all threads to run, if the overall run state of a ↵Jim Ingham2012-05-311-1/+6
| | | | | | | | thread is "suspended" that should override the thread's thread plan's run state. llvm-svn: 157766
* Fix the new _ALIGNAS_TYPE per instructions supplied by Eli Friedman.Howard Hinnant2012-05-311-1/+1
| | | | llvm-svn: 157765
* Protect use of alignas against older versions of clangHoward Hinnant2012-05-312-14/+16
| | | | llvm-svn: 157764
* Updating the visualizers to include more datatypes. Patch thanks to Jay ↵Aaron Ballman2012-05-311-41/+267
| | | | | | Blanchard. llvm-svn: 157763
* [analyzer] Cleanup for r157721.Anna Zaks2012-05-311-11/+9
| | | | | | | | | | We should lock the number of elements after the initial parsing is complete. Recursive AST visitors in AnalyzesConsumer and CallGarph can trigger lazy pch deserialization resulting in more calls to HandleTopLevelDecl and appending to the LocalTUDecls list. We should ignore those. llvm-svn: 157762
* Make this testcase independent of register allocation.Owen Anderson2012-05-311-2/+2
| | | | llvm-svn: 157761
* tsan: intercept longjmp() but die in it, greatly simplifies problem diagnosticDmitry Vyukov2012-05-313-0/+19
| | | | llvm-svn: 157760
* Fix an object lifetime issue in clang/Tooling.Alexander Kornienko2012-05-312-8/+10
| | | | llvm-svn: 157759
* Made nil resolve as (id)0 and not be looked upSean Callanan2012-05-311-0/+8
| | | | | | | (which regularly conflicts with existing symbols in Objective-C). llvm-svn: 157758
* Add support for return value promotion in X86 calling conventions.Jakob Stoklund Olesen2012-05-311-0/+10
| | | | | | Patch by Yiannis Tsiouris! llvm-svn: 157757
* Didn't mean to export this function.Jakob Stoklund Olesen2012-05-311-0/+1
| | | | llvm-svn: 157756
* X86: replace SUB with CMP if possibleManman Ren2012-05-315-0/+61
| | | | | | | | | | | | | | | | | This patch will optimize the following movq %rdi, %rax subq %rsi, %rax cmovsq %rsi, %rdi movq %rdi, %rax to cmpq %rsi, %rdi cmovsq %rsi, %rdi movq %rdi, %rax Perform this optimization if the actual result of SUB is not used. rdar: 11540023 llvm-svn: 157755
* Add a PrintRegUnit helper similar to PrintReg.Jakob Stoklund Olesen2012-05-312-0/+44
| | | | | | | | | | | Reg-units are named after their root registers, and most units have a single root, so they simply print as 'AL', 'XMM0', etc. The rare dual root reg-units print as FPSCR~FPSCR_NZCV, FP0~ST7, ... The printing piggybacks on the existing register name tables, so no extra const data space is required. llvm-svn: 157754
* Emit register unit root tables.Jakob Stoklund Olesen2012-05-312-1/+63
| | | | | | | | | | Each register unit has one or two root registers. The full set of registers containing a given register unit can be computed as the union of the root registers and their super-registers. Provide an MCRegUnitRootIterator class to enumerate the roots. llvm-svn: 157753
* Fix typosJoel Jones2012-05-311-2/+2
| | | | llvm-svn: 157752
* <rdar://problem/11486302>Greg Clayton2012-05-311-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed a case where multiple threads can be asking to send a packet to the GDB server and one of three things will happen: 1 - everything works 2 - one thread will fail to send the packet due to not being able to get the sequence mutex 3 - one thread will try and interrupt the other packet sending and fail and not send the packet Now the flow is a bit different. Prior to this fix we did: if (try_get_sequence_mutex()) { send_packet() return success; } else { if (async_ok) { interrupt() send_packet() resume() return success; } } return fail The issue is that the call to "try_get_sequence_mutex()" could fail if another thread was sending a packet and could cause us to just not send the packet and an error would be returned. What we really want is to try and get the sequence mutex, and if this succeeds, send the packet. Else check if we are running and if we are, do what we used to do. The big difference is when we aren't running, we wait for the sequence mutex so we don't drop packets. Pseudo code is: if (try_get_sequence_mutex()) { // Safe to send the packet right away send_packet() return success; } else { if (running) { // We are running, interrupt and send async packet if ok to do so, // else it is ok to fail if (async_ok) { interrupt() send_packet() resume() return success; } } else { // Not running, wait for the sequence mutex so we don't drop packets get_sequence_mutex() send_packet() return success; } } return fail llvm-svn: 157751
* [asan] partial fix for windows buildKostya Serebryany2012-05-311-11/+11
| | | | llvm-svn: 157750
* Fix typos noticed by Benjamin Kramer.Rafael Espindola2012-05-313-17/+60
| | | | | | | Also make the checks stronger and test that we reject ranges that overlap a previous wrapped range. llvm-svn: 157749
* [asan] partial fix for windows buildKostya Serebryany2012-05-311-13/+0
| | | | llvm-svn: 157748
OpenPOWER on IntegriCloud