summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* clang-format bits of code to make another patch readable.Rafael Espindola2015-03-253-28/+18
| | | | llvm-svn: 233203
* Use Android device serial number instead of hostname as a target identifier ↵Oleksiy Vyalov2015-03-257-18/+87
| | | | | | | | within module cache. http://reviews.llvm.org/D8597 llvm-svn: 233202
* Simplify missing-file-line.ll test.Peter Collingbourne2015-03-251-18/+14
| | | | llvm-svn: 233201
* DebugInfo: Permit DW_TAG_structure_type, DW_TAG_member, DW_TAG_typedef tags ↵Peter Collingbourne2015-03-252-1/+64
| | | | | | | | | | | | | | | | | with empty file names. Some languages, such as Go, have pre-defined structure types (e.g. "string" is essentially a pointer/length pair) or pre-defined "typedef" types (e.g. "error" is essentially a typedef for a specific interface type). Such types do not have associated source location, so a Go frontend would be correct not to associate a file name with such types. This change relaxes the DIType verifier to permit unlocated types with these tags. Differential Revision: http://reviews.llvm.org/D8588 llvm-svn: 233200
* [X86, AVX] improve insertion into zero element of 256-bit vectorSanjay Patel2015-03-252-0/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch allows AVX blend instructions to handle insertion into the low element of a 256-bit vector for the appropriate data types. For f32, instead of: vblendps $1, %xmm1, %xmm0, %xmm1 ## xmm1 = xmm1[0],xmm0[1,2,3] vblendps $15, %ymm1, %ymm0, %ymm0 ## ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7] we get: vblendps $1, %ymm1, %ymm0, %ymm0 ## ymm0 = ymm1[0],ymm0[1,2,3,4,5,6,7] For f64, instead of: vmovsd %xmm1, %xmm0, %xmm1 ## xmm1 = xmm1[0],xmm0[1] vblendpd $3, %ymm1, %ymm0, %ymm0 ## ymm0 = ymm1[0,1],ymm0[2,3] we get: vblendpd $1, %ymm1, %ymm0, %ymm0 ## ymm0 = ymm1[0],ymm0[1,2,3] For the hardware-neglected integer data types, I left a TODO comment in the code and added regression tests for a follow-on patch. Differential Revision: http://reviews.llvm.org/D8609 llvm-svn: 233199
* use update_llc_test_checks.py to tighten checking in these testsSanjay Patel2015-03-251-19/+91
| | | | | | | | 1. There were no CHECK-LABELs, so we could match instructions from the wrong function. 2. The use of zero operands meant multiple xor instructions could match some CHECKs. 3. The test was over-specified to need a Sandybridge CPU and Darwin triple. llvm-svn: 233198
* llvm-jitlistener: Add missing include.Benjamin Kramer2015-03-251-1/+2
| | | | | | | This code is only compiled when LLVM_USE_INTEL_JITEVENTS, but at least we have one buildbot where that's the case :) llvm-svn: 233197
* [APInt] Add an isSplat helper and use it in some places.Benjamin Kramer2015-03-255-14/+60
| | | | | | | To complement getSplat. This is more general than the binary decomposition method as it also handles non-pow2 splat sizes. llvm-svn: 233195
* Fix AVX register detectionTamas Berghammer2015-03-251-3/+3
| | | | | | * Use target triple instead of host platform llvm-svn: 233194
* Remove virtual and add override for lots of function.Tamas Berghammer2015-03-2510-185/+185
| | | | | | | | | | Effeted pathes: * Host/posix/* * Platform/gdb-server/* * Process/Linux/* * Process/POSIX/* llvm-svn: 233193
* [Hexagon] Pattern match a CTZ loop into a call to countTrailingZeros.Benjamin Kramer2015-03-251-4/+1
| | | | | | No functional change intended. llvm-svn: 233192
* [ARM] Rewrite .save/.vsave emission with bit mathBenjamin Kramer2015-03-251-51/+21
| | | | | | | Hopefully makes it a bit easier to understand what's going on. No functional change intended. llvm-svn: 233191
* Fix not_remote_testsuite_ready annotation in the test runnerTamas Berghammer2015-03-251-1/+1
| | | | | | Treat a test run as remote run also if lldb.remote_platform is set. llvm-svn: 233190
* [PowerPC]Fix sancov.py to once again support big endianBill Seurer2015-03-251-9/+9
| | | | | | | | Some recent changes to sancov.py broke ASAN for big endian. This fixes it. http://reviews.llvm.org/D8594 llvm-svn: 233189
* Make exit-code test use same mechanism as existing one.Daniel Jasper2015-03-251-1/+2
| | | | | | | The other version doesn't properly work with our internal test runner, which sets pipefail. llvm-svn: 233188
* Fix fixup evaluation when deciding what to relocate with.Rafael Espindola2015-03-257-66/+61
| | | | | | | | | | | | | | The previous logic was to first try without relocations at all and failing that stop on the first defined symbol. That was inefficient and incorrect in the case part of the expression could be simplified and another part could not (see included test). We now stop the evaluation when we get to a variable whose value can change (i.e. is weak). llvm-svn: 233187
* [Mips] Factor out the code that extracts a relocation 'tag' intoSimon Atanasyan2015-03-251-2/+6
| | | | | | | | | the separate function That keeps "extracting" logic into the single place and removes a VC++ compilation warning. llvm-svn: 233186
* Allow multiple simultaneous connections to platform.Robert Flack2015-03-253-45/+89
| | | | | | | | | | | | | Adds the --server argument to lldb-server platform which when specified will allow multiple simultaneous connections by forking off to handle each individual connection. This will allow us to run the remote tests in parallel. Test Plan: Run: lldb-server platform --listen *:1234 --server Connect from multiple lldb clients simultaneously. I will also test running the test suite remotely with multiple simultaneous jobs. Differential Revision: http://reviews.llvm.org/D8452 llvm-svn: 233185
* [Orc] Remove another unnecessary typedef.Lang Hames2015-03-251-1/+1
| | | | llvm-svn: 233184
* [optnone] Skip pass Float2Int on optnone functions.Andrea Di Biagio2015-03-252-0/+20
| | | | | | | Added test Float2Int/float2int-optnone.ll to verify that pass Float2Int is not run on optnone functions. llvm-svn: 233183
* [Orc][lli] Add a very simple Orc-based lazy JIT to lli.Lang Hames2015-03-25103-154/+346
| | | | | | | | | | | | | | | | | This ensures that we're building and testing the CompileOnDemand layer, at least in a basic way. Currently x86-64 only, and with limited to no library calls enabled (depending on host platform). Patches welcome. ;) To enable access to the lazy JIT, this patch replaces the '-use-orcmcjit' lli option with a new option: '-jit-kind={ mcjit | orc-mcjit | orc-lazy }'. All regression tests are updated to use the new option, and one trivial test of the new lazy JIT is added. llvm-svn: 233182
* [X86] Simplify check lines in tests. No functional change.Andrea Di Biagio2015-03-252-197/+91
| | | | | | Also, removed unused check lines from test atomic6432.ll. llvm-svn: 233181
* [ASan] Suppress the deprecation warning from atos that breaks AtosSymbolizer ↵Alexander Potapenko2015-03-251-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | on OSX 10.9 On OS X 10.9 /usr/bin/atos prints the following warning upon invocation: -- Warning: /usr/bin/atos is moving and will be removed from a future OS X release. It is now available in the Xcode developer tools to be invoked via: `xcrun atos` To silence this warning, pass the '-d' command-line flag to this tool. -- AtosSymbolizer treats the warning as the symbolization result for the first PC passed to the symbolizer. As a result, for each of the following PCs the file:line info for the previous PC is printed, e.g.: ==97926==ERROR: AddressSanitizer: attempting double-free on 0x60200000dfb0 in thread T0: ==97926==Using atos at user-specified path: /usr/bin/atos ==97926==Using dladdr symbolizer. #0 0x1007407e0 in -- (+0x427e0) #1 0x1006f6f25 in wrap_free asan_malloc_mac.cc:114 #2 0x7fff916e05fc in main atos-symbolizer.cc:17 #3 0x0 (<unknown module>) Unfortunately atos doesn't accept the -d switch on OSX versions other than 10.9, thus we have to check for the OSX version. llvm-svn: 233180
* Fix StdVBoolImplementation to handle large vectorsTamas Berghammer2015-03-252-3/+3
| | | | | | | | | | The previous implementation only read out the first element of the underlying storage array. Because of it only the first 32 (on x86) or the first 64 (on x86_64) element was displayed. Differential revision: http://reviews.llvm.org/D8585 llvm-svn: 233179
* Add support for 'leal' instruction to UnwindAssembly-x86Tamas Berghammer2015-03-251-1/+58
| | | | | | | | | | | Gcc for android use the leal instruction to substract from the stack pointer in the prologue of a function call. This patch add basic support for evaluating this instruction to support stack unwinding on android-x86. Differential revision: http://reviews.llvm.org/D8583 llvm-svn: 233178
* Create android x86_32 and x86_64 target infoTamas Berghammer2015-03-253-4/+56
| | | | | | | | | | | On android x86_32 the long double is only 64 bits (compared to 80 bits on linux x86_32) and on android x86_64 the long double is IEEEquad (compared to x87DoubleExtended on linux x86_64). This CL creates new TargetInfo classes for this targets to represent these differences. Differential revision: http://reviews.llvm.org/D8357 llvm-svn: 233177
* Fix wrong type convesrion in ReadRegOperationTamas Berghammer2015-03-251-1/+1
| | | | | | | | The automatic conversion from long int to lldb::addr_t caused sign extension but for a register read it is an unwanted behaviour. Fix with forcing different conversion path. llvm-svn: 233176
* Reapply r233062: "float2int": Add a new pass to demote from float to int ↵James Molloy2015-03-259-1/+812
| | | | | | | | where possible. Now with a fix for PR23008 and extra regression test. llvm-svn: 233175
* test: Fix the dependencies for the check-llvm-* targetsJustin Bogner2015-03-252-5/+6
| | | | | | | | | | | | | In r233009 we gained specific check-llvm-* build targets for invoking specific parts of the test suite, but they were copying the dependencies for check-all, rather than just listing the dependencies for check-llvm. This moves the creation of these targets next to the check-llvm target, and uses that target's configuration rather than the check-all config. llvm-svn: 233174
* Temporarily disable one more non-determinism flag.Daniel Jasper2015-03-251-1/+1
| | | | | | This turned the bots to red after r233172 which reverted r233156. llvm-svn: 233173
* Revert "[Modules] When writing out the on-disk hash table for the decl ↵Rafael Espindola2015-03-251-90/+15
| | | | | | | | context lookup tables, we need to establish a stable ordering for constructing the hash table. This is trickier than it might seem." This reverts commit r233156. It broke the bots. llvm-svn: 233172
* Fix build.Rafael Espindola2015-03-251-1/+1
| | | | llvm-svn: 233171
* [X86] Remove GetCpuIDAndInfo, GetCpuIDAndInfoEx and DetectFamilyModel ↵Craig Topper2015-03-252-149/+0
| | | | | | functions from X86 MC layer. They haven't been used since CPU autodetection was removed from X86Subtarget.cpp. llvm-svn: 233170
* InstrProf: Handle whitespace and comments at the ends of macrosJustin Bogner2015-03-252-4/+15
| | | | | | | | | | | | | | | When we try to find the end loc for a token, we have to re-lex the token. This was running into a problem when we'd store the end loc of a macro's coverage region, since we wouldn't actually be at the beginning of a token when we tried to re-lex it, leading us to do silly things (and eventually assert) when whitespace or comments followed. This pushes our use of getPreciseTokenLocEnd earlier, so that we won't call it when it doesn't make sense to. It also removes an unnecessary adjustment by 1 that was working around this problem in some cases. llvm-svn: 233169
* [Orc] Remove extraneous 'typename'. This should cheer the bots up.Lang Hames2015-03-251-1/+1
| | | | llvm-svn: 233168
* Update xcode project file for addition/removals in r233083 and r233114.Jason Molenda2015-03-251-16/+6
| | | | llvm-svn: 233167
* [Orc] Refactor JITCompileCallbackManagerBase and CompileOnDemandLayer to supportLang Hames2015-03-254-61/+60
| | | | | | | | target-independent callback management. This is a prerequisite for adding orc-based lazy-jitting to lli. llvm-svn: 233166
* Linker: Temporarily disable dwarfdump checks from r233164Duncan P. N. Exon Smith2015-03-251-2/+5
| | | | | | | | | | At least one Linux bot [1] doesn't like my dwarfdump checks, so I've disable those until I can investigate what's going on there. I'll continue to track this in PR22792. [1]: http://bb.pgr.jp/builders/cmake-llvm-x86_64-linux/builds/22863 llvm-svn: 233165
* Linker: Drop function pointers for overridden subprogramsDuncan P. N. Exon Smith2015-03-254-16/+173
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of dropping subprograms that have been overridden, just set their function pointers to `nullptr`. This is a minor adjustment to the stop-gap fix for PR21910 committed in r224487, and fixes the crasher from PR22792. The problem that r224487 put a band-aid on: how do we find the canonical subprogram for a `Function`? Since the backend currently relies on `DebugInfoFinder` (which does a naive in-order traversal of compile units and picks the first subprogram) for this, r224487 tried dropping non-canonical subprograms. Dropping subprograms fails because the backend *also* builds up a map from subprogram to compile unit (`DwarfDebug::SPMap`) based on the subprogram lists. A missing subprogram causes segfaults later when an inlined reference (such as in this testcase) is created. Instead, just drop the `Function` pointer to `nullptr`, which nicely mirrors what happens when an already-inlined `Function` is optimized out. We can't really be sure that it's the same definition anyway, as the testcase demonstrates. This still isn't completely satisfactory. Two flaws at least that I can think of: - I still haven't found a straightforward way to make this symmetric in the IR. (Interestingly, the DWARF output is already symmetric, and I've tested for that to be sure we don't regress.) - Using `DebugInfoFinder` to find the canonical subprogram for a function is kind of crazy. We should just attach metadata to the function, like this: define weak i32 @foo(i32, i32) !dbg !MDSubprogram(...) { llvm-svn: 233164
* [Modules] Disable the diff of the merged module, there is still someChandler Carruth2015-03-251-1/+1
| | | | | | non-determinism here, I just got lucky a bunch of times on my system. llvm-svn: 233163
* [Modules] Make the DeclUpdates map be processed in insertion order.Chandler Carruth2015-03-259-1/+180
| | | | | | | | | This fixes my stress tests non-determinism so far. However, I've not started playing with templates, friends, or terrible macros. I've found at least two more seeming instabilities and am just waiting for a test case to actually trigger them. llvm-svn: 233162
* Diagnose ref-qualifiers occuring after virt-specifier-seq and generate fixit ↵Ehsan Akhgari2015-03-254-11/+46
| | | | | | | | | | | | | | hints Summary: Follow-up to the fix of PR22075. Reviewers: rsmith Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D7012 llvm-svn: 233161
* Diagnose declspecs occuring after virt-specifier-seq and generate fixit hintsEhsan Akhgari2015-03-257-3/+75
| | | | | | | | | | | | Summary: This fixes PR22075. Reviewers: rsmith Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D6828 llvm-svn: 233160
* [ADT] Teach MapVector to support a swap member. Will be used inChandler Carruth2015-03-252-0/+30
| | | | | | a subsequent commit in Clang. llvm-svn: 233159
* Fix warning on non-assert build.Rafael Espindola2015-03-251-0/+2
| | | | llvm-svn: 233158
* xfail tests that failed with clang-3.7, gcc4.8.2 and on i386 to get buildbot ↵Ying Chen2015-03-2512-0/+14
| | | | | | | | | | | | | | | | | | green Summary: -Refer to bug https://buganizer.corp.google.com/issues/19893563 -Test log http://lab.llvm.org:8011/builders/lldb-x86_64-ubuntu-14.04-cmake/builds/1145 Test Plan: Run tests with different compiler and archs locally Reviewers: sivachandra, ovyalov, chaoren, vharron Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D8573 llvm-svn: 233157
* [Modules] When writing out the on-disk hash table for the decl contextChandler Carruth2015-03-251-15/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | lookup tables, we need to establish a stable ordering for constructing the hash table. This is trickier than it might seem. Most of these cases are easily handled by sorting the lookup results associated with a specific name that has an identifier. However for constructors and conversion functions, the story is more complicated. Here we need to merge all of the constructors or conversion functions together and this merge needs to be stable. We don't have any stable ordering for either constructors or conversion functions as both would require a stable ordering across types. Instead, when we have constructors or conversion functions in the results, we reconstruct a stable order by walking the decl context in lexical order and merging them in the order their particular declaration names are encountered. This doesn't generalize as there might be found declaration names which don't actually occur within the lexical context, but for constructors and conversion functions it is safe. It does require loading the entire decl context if necessary to establish the ordering but there doesn't seem to be a meaningful way around that. Many thanks to Richard for talking through all of the design choices here. While I wrote the code, he guided all the actual decisions about how to establish the order of things. No test case yet because the test case I have doesn't pass yet -- there are still more sources of non-determinism. However, this is complex enough that I wanted it to go into its own commit in case it causes some unforseen issue or needs to be reverted. llvm-svn: 233156
* Produce an error instead of asserting on invalid .sleb128/.uleb128.Rafael Espindola2015-03-254-11/+20
| | | | llvm-svn: 233155
* Add a test for r233128: PECOFF: Reduce import table size.Rui Ueyama2015-03-251-0/+6
| | | | | | | This test checks for the size of .idata section. Before r233128, the size of the section is 0x45, but it's now 0x27. llvm-svn: 233154
* 'optnone' should not disable DAG combiner.Paul Robinson2015-03-252-40/+0
| | | | | | | | | Reverts the code change from r221168 and the relevant test. It was a mistake to disable the combiner, and based on the ultimate definition of 'optnone' we shouldn't have considered the test case as failing in the first place. llvm-svn: 233153
OpenPOWER on IntegriCloud