summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Move AliasedSymbol to MachObjectWriter.Rafael Espindola2015-04-175-21/+18
| | | | | | | It was only used by MachO. Part of pr19627. llvm-svn: 235185
* Revert r235177 as the Handle is used to fail GetExitCodeProcess on purpose.Yaron Keren2015-04-171-1/+3
| | | | | | | Avoid double closing of the handle by testing GetLastErr for ERROR_INVALID_HANDLE and not calling CloseHandle(PI.ProcessHandle) then. llvm-svn: 235184
* [mips] Teach the delay slot filler to remove needless KILL instructions.Vasileios Kalintiris2015-04-172-11/+44
| | | | | | | | | | | | | | | | | | Summary: Previously, the presence of KILL instructions would block valid candidates from filling a specific delay slot. With the elimination of the KILL instructions, in the appropriate range, we are able to fill more slots and keep the information from future def/use analysis consistent. Reviewers: dsanders Reviewed By: dsanders Subscribers: hfinkel, llvm-commits Differential Revision: http://reviews.llvm.org/D7724 llvm-svn: 235183
* [ARM] Implement R_ARM_TLS_IE32 for dynamic executableDenis Protivensky2015-04-174-12/+59
| | | | llvm-svn: 235182
* Add a proper fix for pr23025.Rafael Espindola2015-04-172-4/+21
| | | | | | | Instead of avoiding looking past every global symbol, only do so if the symbol is in a comdat. llvm-svn: 235181
* [ARM] Test R_ARM_TLS_LE32 for dynamic executableDenis Protivensky2015-04-171-7/+20
| | | | llvm-svn: 235180
* Fix cmake build on osx after r235109Colin Riley2015-04-171-0/+4
| | | | llvm-svn: 235179
* [mc] Clean up emission of byte sequencesBenjamin Kramer2015-04-177-26/+7
| | | | | | No functional change intended. llvm-svn: 235178
* Eliminate superfluous CloseHandle(PI.ProcessHandle).Yaron Keren2015-04-171-1/+0
| | | | | | | This handle will always be closed few lines later, resulting in an error for the second CloseHandle. llvm-svn: 235177
* test commitSagar Thakur2015-04-171-1/+1
| | | | llvm-svn: 235176
* lli/OrcLazyJIT.cpp: Use <cstdio> for printf(3) introduced in r234908.NAKAMURA Takumi2015-04-171-0/+1
| | | | llvm-svn: 235175
* Follow-up to r235046: selectany only causes a definition if it's not inherited.Nico Weber2015-04-172-1/+6
| | | | | | | | (For example needed to parse system header inputscope.h, which first has an extern "C" selectany IID and then later an extern "C" declaration of that same IID.) llvm-svn: 235174
* [mips] Move ABI-dependent register selections to MipsABIInfo. NFC.Daniel Sanders2015-04-176-49/+84
| | | | | | | | | | | | | | | | | | | | | Summary: For example, a common idiom was 'isN64 ? Mips::SP_64 : Mips::SP'. This has been moved to MipsABIInfo and replaced with 'ABI.GetStackPtr()'. There are others that should also be moved. This patch sticks to the ones that are obviously non-functional. The others have minor mistakes that need fixing at the same time, mostly involving checks for 64-bit GPR's instead of checks for 64-bit pointers. Reviewers: tomatabacu Reviewed By: tomatabacu Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D8972 llvm-svn: 235173
* Make several test case arm32 compatibleTamas Berghammer2015-04-174-3/+9
| | | | llvm-svn: 235172
* Fix mapping symbol handling on arm 32/64Tamas Berghammer2015-04-171-25/+31
| | | | | | | | | | | | The debug info section contains some $d mapping symbol what is overlapping with code sections in other sections of the object file causing problem in the address class detection. This CL ignores these symboles from the address class map as the debug info sections don't use this map. Differential revision: http://reviews.llvm.org/D9050 llvm-svn: 235171
* Revert r235154-r235156, they cause asserts when building win64 code ↵Nico Weber2015-04-1719-420/+361
| | | | | | (http://crbug.com/477988) llvm-svn: 235170
* XFAILing TestPrintStackTraces on linux to stabilize the build botPavel Labath2015-04-171-6/+4
| | | | llvm-svn: 235169
* Add a reduced testcase from pr23025.Rafael Espindola2015-04-171-0/+18
| | | | llvm-svn: 235168
* Don't walk aliases from global to local symbols in comdats.Rafael Espindola2015-04-172-1/+48
| | | | | | This fixes pr23196. llvm-svn: 235167
* Move fixit for const init from note to diag, weaken to warning in MS mode.Nico Weber2015-04-1714-43/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | r235046 turned "extern __declspec(selectany) int a;" from a declaration into a definition to fix PR23242 (required for compatibility with mc.exe output). However, this broke parsing Windows headers: A d3d11 headers contain something like struct SomeStruct {}; extern const __declspec(selectany) SomeStruct some_struct; This is now a definition, and const objects either need an explicit default ctor or an initializer so this errors out with d3d11.h(1065,48) : error: default initialization of an object of const type 'const CD3D11_DEFAULT' without a user-provided default constructor (cl.exe just doesn't implement this rule, independent of selectany.) To work around this, weaken this error into a warning for selectany decls in microsoft mode, and recover with zero-initialization. Doing this is a bit hairy since it adds a fixit on an error emitted by InitializationSequence – this means it needs to build a correct AST, which in turn means InitializationSequence::Failed() cannot return true when this fixit is applied. As a workaround, the patch adds a fixit member to InitializationSequence, and InitializationSequence::Perform() prints the diagnostic if the fixit member is set right after its call to Diagnose. That function is usually called when InitializationSequences are used – InitListChecker::PerformEmptyInit() doesn't call it, but the InitListChecker case never performs default-initialization, so this is technically OK. This is the alternative, original fix for PR20208 that got reviewed in the thread "[patch] Improve diagnostic on default-initializing const variables (PR20208)". This change basically reverts r213725, adds the original fix for PR20208, and makes the error a warning in Microsoft mode. llvm-svn: 235166
* Write relocation sections contiguously.Rafael Espindola2015-04-175-11/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Linkers normally read all the relocations upfront to compute the references between sections. Putting them together is a bit more cache friendly. I benchmarked linking a Release+Asserts clang with gold on a vm. I tried all 4 combinations of --gc-sections/no --gc-section hot and cold cache. I cleared the cache with echo 3 > /proc/sys/vm/drop_caches and warmed it up by running the link once before timing the subsequent ones. With cold cache and --gc-sections the time goes from 1.86130781665 +- 0.01713126697463843 seconds to 1.82370735105 +- 0.014127522318814516 seconds With cold cache and no --gc-sections the time goes from 1.6087245435500002 +- 0.012999066825178644 seconds to 1.5687122041500001 +- 0.013145850126026619 seconds With hot cache and no --gc-sections the time goes from 0.926200939 ( +- 0.33% ) seconds to 0.907200079 ( +- 0.31% ) seconds With hot cache and gc sections the time goes from 1.183038049 ( +- 0.34% ) seconds to 1.147355862 ( +- 0.39% ) seconds llvm-svn: 235165
* Uses the target platform to determine the platform context.Robert Flack2015-04-172-12/+11
| | | | | | | | | | | | | | | Uses the target platform to determine the platform context to use. This fixes an early failure in some tests when running on a different remote target. Test Plan: ./dotest.py $DOTEST_OPTS -t -p TestGlobalVariables.py|TestSharedLib.py Running on macosx -> linux, this fails at a later stage in the test - rather than in registerSharedLibrariesWithTarget looking for a library without the correct "lib" prefix and ".so" suffix. Differential Revision: http://reviews.llvm.org/D9047 llvm-svn: 235164
* Revert file unintentionally changed in r235162.Daniel Jasper2015-04-171-1/+1
| | | | llvm-svn: 235163
* clang-format: Add default fallback style.Daniel Jasper2015-04-172-1/+2
| | | | | | Thanks to Michael Schlottke. llvm-svn: 235162
* [MS ABI] Use the right types for filter and finally blocksDavid Majnemer2015-04-175-52/+54
| | | | | | | The type for abnormal_termination can't be an i1, it an i8. Filter functions return 'LONG', not 'int'. llvm-svn: 235161
* [opaque pointer type] Explicit pointee type for call instructionDavid Blaikie2015-04-175-12/+31
| | | | | | | | | | Use an extra bit in the CCInfo to flag the newer version of the instructiont hat includes the type explicitly. Tested the newer error cases I added, but didn't add tests for the finer granularity improvements to existing error paths. llvm-svn: 235160
* Narrow down the type of CallInst::getFunctionType to a FunctionTypeDavid Blaikie2015-04-171-2/+3
| | | | llvm-svn: 235159
* 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
OpenPOWER on IntegriCloud