summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Add a "force_kill" arg to Process::Destroy(). This is needed afterJason Molenda2015-04-177-14/+25
| | | | | | | | | | | | | | | | | | the changes in r233255/r233258. Normally if lldb attaches to a running process, when we call Process::Destroy, we want to detach from the process. If lldb launched the process itself, ::Destroy should kill it. However, if we attach to a process and the driver calls SBProcess::Kill() (which calls Destroy), we need to kill it even if we didn't launch it originally. The force_kill param allows for the SBProcess::Kill method to force the behavior of Destroy. <rdar://problem/20424439> llvm-svn: 235158
* Fix a bug where argdumper would not launch inferiors correctly in the ↵Enrico Granata2015-04-174-20/+55
| | | | | | | | presence of arguments of the form word1\ word2 (vs. the quoted form "word1 word2") Fixes rdar://20493444 llvm-svn: 235157
* Fix test failure due to racing commitsReid Kleckner2015-04-172-4/+4
| | | | | | | It looks like r235145 changed the .ll syntax for variadic calls. Update tests to use the new syntax. llvm-svn: 235156
* Fix unused variable warningReid Kleckner2015-04-171-5/+0
| | | | llvm-svn: 235155
* [SEH] Reimplement x64 SEH using WinEHPrepareReid Kleckner2015-04-1719-356/+420
| | | | | | | | | | | | | | | | This now emits simple, unoptimized xdata tables for __C_specific_handler based on the handlers listed in @llvm.eh.actions calls produced by WinEHPrepare. This adds support for running __finally blocks when exceptions are thrown, and removes the old landingpad fan-in codepath. I ran some manual execution tests on small basic test cases with and without optimization, as well as on Chrome base_unittests, which uses a small amount of SEH. I'm sure there are bugs, and we may need to revert. llvm-svn: 235154
* Fix "help language", the languages printer was assuming the Jim Ingham2015-04-173-6/+15
| | | | | | | eLanguageType numbers would be sequential, but vendor types are not and the printer went crazy. llvm-svn: 235153
* DebugInfo: Fixup r235149 after IR change in r235145Duncan P. N. Exon Smith2015-04-171-7/+7
| | | | | | | This shouldn't have used varargs anyway; change the functions to be `void`. Also remove my accidentally-committed directory path. llvm-svn: 235152
* [NaryReassociate] run NaryReassociate iterativelyJingyue Wu2015-04-172-9/+69
| | | | | | | | | | | | | | | | | | | | | | | Summary: An alternative is to use a worklist approach. However, that approach would break the traversing order so that we couldn't lookup SeenExprs efficiently. I don't see a clear winner here, so I picked the easier approach. Along with two minor improvements: 1. preserves ScalarEvolution by forgetting instructions replaced 2. removes dead code locally avoiding the need of running DCE afterwards Test Plan: add to slsr-add.ll a test that requires multiple iterations Reviewers: broune, dberlin, atrick, meheff Reviewed By: atrick Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D9058 llvm-svn: 235151
* Improve const-nessDavid Blaikie2015-04-172-6/+4
| | | | | | | | This allows callers to pass a char ** (such as the one coming from the standard decreed main declaration - even though everyone usually puts const on that themselves). llvm-svn: 235150
* DebugInfo: Simplify testcase from LiveDebugVariables fix in r235140Duncan P. N. Exon Smith2015-04-171-80/+50
| | | | | | | This testcase is less brittle and exactly tests for the misbehaviour. Thanks to David Blaikie for the suggestion. llvm-svn: 235149
* [AArch64] Don't assert on f16 in DUP PerfectShuffle generator.Ahmed Bougacha2015-04-162-1/+38
| | | | | | | | Found by code inspection, but breaking i16 at least breaks other tests. They aren't checking this in particular though, so also add some explicit tests for the already working types. llvm-svn: 235148
* [opaque pointer types] Explicit non-pointer type for call expressionsDavid Blaikie2015-04-1654-163/+163
| | | | | | (migration for recent LLVM change to textual IR for calls) llvm-svn: 235147
* [opaque pointer types] Explicit non-pointer type for call expressionsDavid Blaikie2015-04-1610-12/+12
| | | | | | (migration for recent LLVM change to textual IR for calls) llvm-svn: 235146
* [opaque pointer type] Add textual IR support for explicit type parameter to ↵David Blaikie2015-04-16560-1503/+1498
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | the call instruction See r230786 and r230794 for similar changes to gep and load respectively. Call is a bit different because it often doesn't have a single explicit type - usually the type is deduced from the arguments, and just the return type is explicit. In those cases there's no need to change the IR. When that's not the case, the IR usually contains the pointer type of the first operand - but since typed pointers are going away, that representation is insufficient so I'm just stripping the "pointerness" of the explicit type away. This does make the IR a bit weird - it /sort of/ reads like the type of the first operand: "call void () %x(" but %x is actually of type "void ()*" and will eventually be just of type "ptr". But this seems not too bad and I don't think it would benefit from repeating the type ("void (), void () * %x(" and then eventually "void (), ptr %x(") as has been done with gep and load. This also has a side benefit: since the explicit type is no longer a pointer, there's no ambiguity between an explicit type and a function that returns a function pointer. Previously this case needed an explicit type (eg: a function returning a void() function was written as "call void () () * @x(" rather than "call void () * @x(" because of the ambiguity between a function returning a pointer to a void() function and a function returning void). No ambiguity means even function pointer return types can just be written alone, without writing the whole function's type. This leaves /only/ the varargs case where the explicit type is required. Given the special type syntax in call instructions, the regex-fu used for migration was a bit more involved in its own unique way (as every one of these is) so here it is. Use it in conjunction with the apply.sh script and associated find/xargs commands I've provided in rr230786 to migrate your out of tree tests. Do let me know if any of this doesn't cover your cases & we can iterate on a more general script/regexes to help others with out of tree tests. About 9 test cases couldn't be automatically migrated - half of those were functions returning function pointers, where I just had to manually delete the function argument types now that we didn't need an explicit function type there. The other half were typedefs of function types used in calls - just had to manually drop the * from those. import fileinput import sys import re pat = re.compile(r'((?:=|:|^|\s)call\s(?:[^@]*?))(\s*$|\s*(?:(?:\[\[[a-zA-Z0-9_]+\]\]|[@%](?:(")?[\\\?@a-zA-Z0-9_.]*?(?(3)"|)|{{.*}}))(?:\(|$)|undef|inttoptr|bitcast|null|asm).*$)') addrspace_end = re.compile(r"addrspace\(\d+\)\s*\*$") func_end = re.compile("(?:void.*|\)\s*)\*$") def conv(match, line): if not match or re.search(addrspace_end, match.group(1)) or not re.search(func_end, match.group(1)): return line return line[:match.start()] + match.group(1)[:match.group(1).rfind('*')].rstrip() + match.group(2) + line[match.end():] for line in sys.stdin: sys.stdout.write(conv(re.search(pat, line), line)) llvm-svn: 235145
* Define LIBXML2_DEFINED in the Xcode project for Xcode builds so Darwin ↵Greg Clayton2015-04-163-17/+22
| | | | | | | | | | builds can take advantage of the new GDB register info from the target XML. Also add "#if defined( LIBXML2_DEFINED )" around code that already used libxml2 in SymbolVendorMacOSX.cpp. Cleaned up some warnings in ProcessGDBRemote.cpp. llvm-svn: 235144
* Fix warnings about construction ordering.Greg Clayton2015-04-161-1/+1
| | | | llvm-svn: 235143
* Use a singleton accessor for the static list of alternate mangling prefixes ↵Greg Clayton2015-04-162-9/+15
| | | | | | so we don't have a global constructor. Apple build systems like for shared libraries to have no global constructors. llvm-svn: 235142
* For llvm-objdump, dump the (__OBJC,__protocol) section for Objc1 32-bit ↵Kevin Enderby2015-04-162-0/+191
| | | | | | | | Mach-O files with the -section option as objc_protocol_t structs. llvm-svn: 235141
* DebugInfo: Fix UserValue::match() in LiveDebugVariables after r235050Duncan P. N. Exon Smith2015-04-162-5/+110
| | | | | | | | r235050 dropped the inlined-at field from `MDLocalVariable`, deferring to the `!dbg` attachments. Fix `UserValue` to take the `!dbg` into account when differentiating between variables. llvm-svn: 235140
* AsmPrinter: Remove dead code, NFCDuncan P. N. Exon Smith2015-04-161-1/+0
| | | | llvm-svn: 235139
* AsmPrinter: Simplify logic for debug info intrinsics' !dbg attachmentsDuncan P. N. Exon Smith2015-04-163-11/+6
| | | | | | These are required, so just assume they're there. llvm-svn: 235138
* Fix TestPluginCommands for gcc.Chaoren Lin2015-04-162-3/+2
| | | | | | | | | | | | | | | | Summary: gcc requires that LDFLAGS come after DYLIB_OBJECTS. Test Plan: TestPluginCommands passes. Reviewers: sivachandra, pcc, clayborg Reviewed By: clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D9045 llvm-svn: 235137
* Updating symbol wildcards one more time.Chris Bieneman2015-04-161-1/+1
| | | | | | This should catch all C++ symbols containing llvm in the name. llvm-svn: 235136
* [Objective-C Sema]. In my last patch change theFariborz Jahanian2015-04-165-40/+40
| | | | | | | attribute name to objc_independent_class. rdar://20255473 llvm-svn: 235135
* A few bits of N2994 didn't get fully implemented a long time ago. Thanks to ↵Marshall Clow2015-04-168-19/+90
| | | | | | STL@microsoft.com for the bug report llvm-svn: 235134
* Disable AArch64 fast-isel on big-endian call vector returns.Pete Cooper2015-04-162-0/+177
| | | | | | | | A big-endian vector return needs a byte-swap which we aren't doing right now. For now just bail on these cases to get correctness back. llvm-svn: 235133
* [IR] Introduce a dereferenceable_or_null(N) attribute.Sanjoy Das2015-04-1617-31/+181
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: If a pointer is marked as dereferenceable_or_null(N), LLVM assumes it is either `null` or `dereferenceable(N)` or both. This change only introduces the attribute and adds a token test case for the `llvm-as` / `llvm-dis`. It does not hook up other parts of the optimizer to actually exploit the attribute -- those changes will come later. For pointers in address space 0, `dereferenceable(N)` is now exactly equivalent to `dereferenceable_or_null(N)` && `nonnull`. For other address spaces, `dereferenceable(N)` is potentially weaker than `dereferenceable_or_null(N)` && `nonnull` (since we could have a null `dereferenceable(N)` pointer). The motivating case for this change is Java (and other managed languages), where pointers are either `null` or dereferenceable up to some usually known-at-compile-time constant offset. Reviewers: rafael, hfinkel Reviewed By: hfinkel Subscribers: nicholas, llvm-commits Differential Revision: http://reviews.llvm.org/D8650 llvm-svn: 235132
* Surround assignments w/ parenthesis to avoid mistakes.Davide Italiano2015-04-161-5/+5
| | | | | | This also silences a warning. llvm-svn: 235131
* [NFC] [MachO] remove extra semicolonsJingyue Wu2015-04-161-4/+4
| | | | llvm-svn: 235130
* [NaryReassociate] speeds up candidate searchingJingyue Wu2015-04-162-10/+67
| | | | | | | | | | | | | | | | | | | | | Summary: This fixes a left-over efficiency issue in D8950. As Andrew and Daniel suggested, we can store the candidates in a stack and pop the top element when it does not dominate the current instruction. This reduces the worst-case time complexity to O(n). Test Plan: a new test in nary-add.ll that exercises this optimization. Reviewers: broune, dberlin, meheff, atrick Reviewed By: atrick Subscribers: llvm-commits, sanjoy Differential Revision: http://reviews.llvm.org/D9055 llvm-svn: 235129
* [Objective-C Sema] patch to introduce IndependentClassFariborz Jahanian2015-04-168-2/+78
| | | | | | | | | attribute to be placed on Objective-C pointer typedef to make them strong enough so on their "new" method family no attempt is made to override these types. rdar://20255473 llvm-svn: 235128
* Properly escaping the quotes so that bash doesn't do stupid things with the ↵Chris Bieneman2015-04-161-1/+1
| | | | | | wildcards. llvm-svn: 235127
* Use the correct type, and silence a warning.Davide Italiano2015-04-161-1/+1
| | | | llvm-svn: 235126
* Cleanup based on rnk's feedback.Chris Bieneman2015-04-161-12/+8
| | | | llvm-svn: 235125
* [X86, SSE] instcombine common cases of insertps intrinsics into shufflesSanjay Patel2015-04-162-2/+162
| | | | | | | | | | | | | | | | This is very similar to D8486 / r232852 (vperm2). If we treat insertps intrinsics as shufflevectors, we can optimize them better. I've left all but the full zero case of the zero mask variants out of this patch. I don't think those can be converted into a single shuffle in all cases, but I'd be happy to be proven wrong as I was for vperm2f128. Either way, we'd need to support whatever sequence we come up with for those cases in the backend before converting them here. Differential Revision: http://reviews.llvm.org/D8833 llvm-svn: 235124
* Fixing windows bots.Chris Bieneman2015-04-161-10/+12
| | | | | | Third time's the try. llvm-svn: 235123
* The last argument to CreateExceptionBreakpoint is "internal" not Hardware.Jim Ingham2015-04-161-1/+1
| | | | llvm-svn: 235122
* Better fix to the windows conditional.Chris Bieneman2015-04-161-1/+1
| | | | llvm-svn: 235121
* Fix Windows bots.Chris Bieneman2015-04-161-1/+6
| | | | | | Turns out Windows is special. All library installs are RUNTIME. llvm-svn: 235120
* For llvm-objdump added support for printing Objc1 32-bit runtime meta dataKevin Enderby2015-04-164-11/+1121
| | | | | | with the existing -objc-meta-data and -macho options for Mach-O files. llvm-svn: 235119
* Add new virtual method for language runtime plug-ins:Greg Clayton2015-04-167-62/+106
| | | | | | | | | virtual void LanguageRuntime::ModulesDidLoad (const ModuleList &module_list); Then reorganized how the objective C plug-in is notified so it will work for all LanguageRuntime subclasses. llvm-svn: 235118
* [WinEH] Handle a landingpad, resume, and cleanup all rolled into a BBReid Kleckner2015-04-162-6/+39
| | | | | | This happens a lot with simple cleanups after SimplifyCFG. llvm-svn: 235117
* Editorial changes in the programmers manual.Charlie Turner2015-04-161-4/+5
| | | | | | | VMCore was renamed to IR back in 2013. The relevant "core" implementations were moved into the lib/IR directory at the same time. llvm-svn: 235116
* DebugInfo: Allow DebugLocs to be constructed from constDuncan P. N. Exon Smith2015-04-162-9/+11
| | | | | | | Allow `const`-qualified pointers to be used to construct `DebugLoc`s, as a convenience. llvm-svn: 235115
* Fixing llvm-shlib's LLVM_DYLIB_EXPORT_ALL to work with Darwin fat binaries.Chris Bieneman2015-04-161-25/+27
| | | | llvm-svn: 235114
* Fixing a mis-use of the CMake install command.Chris Bieneman2015-04-161-6/+16
| | | | | | | | | | | | | | | | | | | | | The CMake install command is defined as: install(TARGETS targets... [EXPORT <export-name>] [[ARCHIVE|LIBRARY|RUNTIME|FRAMEWORK|BUNDLE| PRIVATE_HEADER|PUBLIC_HEADER|RESOURCE] [DESTINATION <dir>] [INCLUDES DESTINATION [<dir> ...]] [PERMISSIONS permissions...] [CONFIGURATIONS [Debug|Release|...]] [COMPONENT <component>] [OPTIONAL] [NAMELINK_ONLY|NAMELINK_SKIP] ] [...]) This means it can only take one parameter from the set of RUNTIME, LIBRARY, or ARCHIVE. If you set more than one of these it seems to gobble up the extra arguments and ignore the COMPONENT argument. This adds a check to only set LIBRARY or ARCHIVE based on whether or not the library being built is shared. llvm-svn: 235113
* DebugInfo: Update for LLVM API change in DIBuilder (r235111)Duncan P. N. Exon Smith2015-04-162-113/+96
| | | | | | | | | | | | | | | | | LLVM r235111 changed the `DIBuilder` API to stop using `DIDescriptor` and its subclasses. Rolled into this was some tightening up of types: - Scopes: `DIDescriptor` => `MDScope*`. - Generic debug nodes: `DIDescriptor` => `DebugNode*`. - Subroutine types: `DICompositeType` => `MDSubroutineType*`. - Composite types: `DICompositeType` => `MDCompositeType*`. Note that `DIDescriptor` wraps `MDNode`, and `DICompositeType` wraps `MDCompositeTypeBase`. It's this new type strictness that requires changes here. llvm-svn: 235112
* DebugInfo: Remove DIDescriptor from the DIBuilder APIDuncan P. N. Exon Smith2015-04-165-485/+407
| | | | | | | | | | | | | | | | As a step toward killing `DIDescriptor` and its subclasses, remove it from the `DIBuilder` API. Replace the subclasses with appropriate pointers from the new debug info hierarchy. There are a couple of possible surprises in type choices for out-of-tree frontends: - Subroutine types: `MDSubroutineType`, not `MDCompositeTypeBase`. - Composite types: `MDCompositeType`, not `MDCompositeTypeBase`. - Scopes: `MDScope`, not `MDNode`. - Generic debug info nodes: `DebugNode`, not `MDNode`. This is part of PR23080. llvm-svn: 235111
* [AArch64] Add v8.1a architectureVladimir Sukharev2015-04-163-1/+41
| | | | | | | | | | | | Add support for AArch64 v8.1 architecture. Briefly it is described on http://community.arm.com/groups/processors/blog/2014/12/02/the-armv8-a-architecture-and-its-ongoing-development Reviewers: jmolloy Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D8493 llvm-svn: 235110
* Adds lldb support for querying the register mapping from gdbserver remote ↵Colin Riley2015-04-166-21/+607
| | | | | | | | targets using qXfer:features:read packet. Only enabled if libxml2 enabled in build. Differential Revision: http://reviews.llvm.org/D8999 llvm-svn: 235109
OpenPOWER on IntegriCloud