summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [asan] Reify ErrorDeadlySignalFilipe Cabecinhas2016-09-087-71/+125
| | | | | | | | | | | | Summary: Keep reifying other errors. Reviewers: kcc, samsonov Subscribers: llvm-commits, kubabrecka Differential Revision: https://reviews.llvm.org/D23873 llvm-svn: 280930
* [Thumb1] AND with a constant operand can be converted into BICJames Molloy2016-09-082-0/+22
| | | | | | | So model the cost of materializing the constant operand C as the minimum of C and ~C. llvm-svn: 280929
* [Thumb1] Fix cost calculation for complemented immediatesJames Molloy2016-09-082-1/+22
| | | | | | | | | | | | Materializing something like "-3" can be done as 2 instructions: MOV r0, #3 MVN r0, r0 This has a cost of 2, not 3. It looks like we were already trying to detect this pattern in TII::getIntImmCost(), but were taking the complement of the zero-extended value instead of the sign-extended value which is unlikely to ever produce a number < 256. There were no tests failing after changing this... :/ llvm-svn: 280928
* [SelectionDAG] Add BUILD_VECTOR support to computeKnownBits and ↵Simon Pilgrim2016-09-085-14/+57
| | | | | | | | | | | | SimplifyDemandedBits Add the ability to computeKnownBits and SimplifyDemandedBits to extract the known zero/one bits from BUILD_VECTOR, returning the known bits that are shared by every vector element. This is an initial step towards determining the sign bits of a vector (PR29079). Differential Revision: https://reviews.llvm.org/D24253 llvm-svn: 280927
* [DAGCombiner] Enable AND combines of splatted constant vectorsSimon Pilgrim2016-09-082-11/+9
| | | | | | | | Allow AND combines to use a vector splatted constant as well as a constant scalar. Preliminary part of D24253. llvm-svn: 280926
* Pack InputSectionData from 72 to 64 bytes. NFC.Rafael Espindola2016-09-083-12/+19
| | | | llvm-svn: 280925
* LLDB: API for iPermission of object file's sectionsAbhishek Aggarwal2016-09-083-0/+27
| | | | | | | | | | | | | | | | | | Summary: - Added an API to public interface that provides permissions (RWX) of individual sections of an object file - Earlier, there was no way to find out this information through SB APIs - A possible use case of this API is: when a user wants to know the sections that have executable machine instructions and want to write a tool on top of LLDB based on this information - Differential Revision: https://reviews.llvm.org/D24251 llvm-svn: 280924
* ScopInfo: Add missing __isl_take annotationTobias Grosser2016-09-081-1/+1
| | | | llvm-svn: 280923
* Fix test breakage in r280919Pavel Labath2016-09-081-1/+5
| | | | | | | | | | | It turns out that self.dbg.GetSelectedPlatform().GetTriple() is not a good way to get the triple of the process, as it returns the incorrect triple in case of a 32-bit process running on a 64-bit platform. Instead, go the long way round and ask the stub for the process triple. This fixes the test for i386. llvm-svn: 280922
* Moved unreachable to appease msvc, gcc and clangSimon Pilgrim2016-09-081-3/+2
| | | | llvm-svn: 280921
* [tsan] Support C++11 call_once in TSan on DarwinKuba Brecka2016-09-082-0/+61
| | | | | | | | This patch adds a wrapper for call_once, which uses an already-compiled helper __call_once with an atomic release which is invisible to TSan. To avoid false positives, the interceptor performs an explicit atomic release in the callback wrapper. Differential Revision: https://reviews.llvm.org/D24188 llvm-svn: 280920
* gdb-remote: Add jModulesInfo packetPavel Labath2016-09-0813-17/+390
| | | | | | | | | | | | | | | | | | | | | Summary: This adds the jModulesInfo packet, which is the equivalent of qModulesInfo, but it enables us to query multiple modules at once. This makes a significant speed improvement in case the application has many (over a hundred) modules, and the communication link has a non-negligible latency. This functionality is accessed by ProcessGdbRemote::PrefetchModuleSpecs(), which does the caching. GetModuleSpecs() is modified to first consult the cache before asking the remote stub. PrefetchModuleSpecs is currently only called from POSIX-DYLD dynamic loader plugin, after it reads the list of modules from the inferior memory, but other uses are possible. This decreases the attach time to an android application by about 40%. Reviewers: clayborg Subscribers: tberghammer, lldb-commits, danalbert Differential Revision: https://reviews.llvm.org/D24236 llvm-svn: 280919
* Revert "[ARM] Lower UDIV+UREM to UDIV+MLS (and the same for SREM)"Pablo Barrio2016-09-082-61/+1
| | | | | | | | | | This reverts commit r280808. It is possible that this change results in an infinite loop. This is causing timeouts in some tests on ARM, and a Chromebook bot is failing. llvm-svn: 280918
* Fixed a 'not all control paths return a value' warning on MSVC buildsSimon Pilgrim2016-09-081-19/+22
| | | | llvm-svn: 280917
* [ELF] - Add virtual destructor to LinkerScriptBase class. NFC.George Rimar2016-09-081-0/+1
| | | | | | | | | | Absence of it caused a clang warning: warning: 'lld::elf::LinkerScriptBase' has virtual functions but non-virtual destructor [-Wnon-virtual-dtor] At fact we don't need it here because do not destroy this object by base pointer. llvm-svn: 280916
* Linker script: implement ALIGNOFEugene Leviant2016-09-083-0/+59
| | | | | | Differential revision: https://reviews.llvm.org/D24141 llvm-svn: 280915
* [ELF][MIPS] Fix initialization of TLS-related GOT entriesSimon Atanasyan2016-09-086-89/+179
| | | | | | | | | | | | | | This patch allows static linking of TLS code. To do that it fixes GOT entries initialization. If TLS-related GOT entry created for a preemptible symbol i.e. has a corresponding dynamic relocation, leave the entry initialized by zero. Write down adjusted TLS symbol's values otherwise. For the adjustments calculation use offsets for thread-local storage. https://www.linux-mips.org/wiki/NPTL llvm-svn: 280914
* [ELF][MIPS] Update the commentSimon Atanasyan2016-09-081-2/+4
| | | | llvm-svn: 280913
* Set entry address to 0x0 if no _start symbolEugene Leviant2016-09-0810-40/+47
| | | | | | Differential revision: https://reviews.llvm.org/D23925 llvm-svn: 280912
* [ELF] - Apply clang-format to LinkerScript.cpp, NFC.George Rimar2016-09-081-17/+15
| | | | llvm-svn: 280911
* [ELF] - Linkerscript: simplify access to templated methods from parser.George Rimar2016-09-083-81/+32
| | | | | | | | | Previous way of accessing templated methods was a bit bulky, Patch introduces small interface based solution. Differential revision: https://reviews.llvm.org/D23872 llvm-svn: 280910
* [mips][microMIPS] Implement DBITSWAP, DLSA and LWUPC and add tests for AUI ↵Hrvoje Varga2016-09-0811-12/+146
| | | | | | | | instructions Differential Revision: https://reviews.llvm.org/D16452 llvm-svn: 280909
* [asan] Test that asan does not report use-after-scope if program jumped over ↵Vitaly Buka2016-09-081-0/+21
| | | | | | | | | | | | | | | | | | variable declaration. Summary: Test to check if PR28267 workaround works. PR28267 PR27453 Reviewers: eugenis Subscribers: llvm-commits, kubabrecka Differential Revision: https://reviews.llvm.org/D24323 llvm-svn: 280908
* [asan] Avoid lifetime analysis for allocas with can be in ambiguous stateVitaly Buka2016-09-082-0/+116
| | | | | | | | | | | | | | | | | | Summary: C allows to jump over variables declaration so lifetime.start can be avoid before variable usage. To avoid false-positives on such rare cases we detect them and remove from lifetime analysis. PR27453 PR28267 Reviewers: eugenis Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D24321 llvm-svn: 280907
* I'm experimenting with changing how the mixed source & assemblyJason Molenda2016-09-084-58/+367
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mode in lldb works. I've been discussing this with Jim Ingham, Greg Clayton, and Kate Stone for the past week or two. Previously lldb would print three source lines (centered on the line table entry line for the current line) followed by the assembly. It would print the context information (module`function + offset) before those three lines of source. Now lldb will print up to two lines before/after the line table entry. It prints two '*' characters for the line table line to make it clear what line is showing assembly. There is one line of whitespace before/after the source lines so the separation between source & assembly is clearer. I don't print the context line (module`function + offset). I stop printing context lines if it's a different line table entry, or if it's a source line I've already printed as context to another source line. If I have two line table entries one after another for the same source line (I get these often with clang - with different column information in them), I only print the source line once. I'm also using the target.process.thread.step-avoid-regexp setting (which keeps you from stepping into STL functions that have been inlined into your own code) and avoid printing any source lines from functions that match that regexp. When lldb disassembles into a new function, it will try to find the declaration line # for the function and print all of the source lines between the decl and the first line table entry (usually a { curly brace) so we have a good chance of including the arguments, at least with the debug info emitted by clang. Finally, the # of source lines of context to show has been separated from whether we're doing mixed source & assembly or not. Previously specifying 0 lines of context would turn off mixed source & assembly. I think there's room for improvement, and maybe some bugs I haven't found yet, but it's in good enough shape to upstream and iterate at this point. I'm not sure how best to indicate which source line is the actual line table # versus context lines. I'm using '**' right now. Both Kate and Greg had the initial idea to reuse '->' (normally used to indicate "currently executing source line") - I tried it but I wasn't thrilled, I'm too used to the established meaning of ->. Greg had the interesting idea of avoiding context source lines only in two line table entries in the same source file. So we'd print two lines before & after a source line, and then the next line table entry (if it was on the next source line after those two context lines) we'd display only the following two lines -- the previous two had just been printed. If an inline source line was printed between these two, though, we'd print the context lines for both of them. It's an interesting idea, and I want to see how it works with both -O0 and -O3 codegen where we have different amounts of inlining. <rdar://problem/27961419> llvm-svn: 280906
* Revert "[LoopUnroll] Properly update loop-info when cloning prologues and ↵Michael Zolotukhin2016-09-082-98/+11
| | | | | | | | | | epilogues." This reverts commit r280901. This caused a bunch of failures, reverting it until I investigate them. llvm-svn: 280905
* Rename test file. NFC.Rui Ueyama2016-09-081-0/+0
| | | | llvm-svn: 280904
* I had a problem with one SDK where dispatch_release was actually aJason Molenda2016-09-081-1/+1
| | | | | | | | macro, so writing ::dispatch_release did not work as expected. Remove the global anon namespace :: designation; the header will get us the correct declaration. llvm-svn: 280903
* Force the initialization of the m_type ivar inJason Molenda2016-09-081-0/+3
| | | | | | | | Function::GetStartLineSourceInfo before we try to return the start line information about a function; this function requires it to have been initialized. llvm-svn: 280902
* [LoopUnroll] Properly update loop-info when cloning prologues and epilogues.Michael Zolotukhin2016-09-082-11/+98
| | | | | | | | | | | | | | | | | | | Summary: When cloning blocks for prologue/epilogue we need to replicate the loop structure from the original loop. It wasn't a problem for the innermost loops, but it led to an incorrect loop info when we unrolled a loop with a child loop - in this case created prologue-loop had a child loop, but loop info didn't reflect that. This fixes PR28888. Reviewers: chandlerc, sanjoy, hfinkel Subscribers: llvm-commits, silvas Differential Revision: https://reviews.llvm.org/D24203 llvm-svn: 280901
* Correctly escape %.Nico Weber2016-09-081-1/+1
| | | | | | Found be an MSVC warning; I filed PR30320 for adding a similar warning to clang. llvm-svn: 280900
* Add explicit casts to size_t to try to appease MSVC.Peter Collingbourne2016-09-081-2/+2
| | | | llvm-svn: 280899
* [llvm-cov] Disable zlib compression in a test input, unbreaks botsVedant Kumar2016-09-081-0/+0
| | | | | | | | | | Disable name compression in the inputs used to produce multiple-files.covmapping. Should fix bots which don't compile with zlib: http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/19610/steps/test/logs/stdio llvm-svn: 280898
* CodeGen: Clean up implementation of vtable initializer builder. NFC.Peter Collingbourne2016-09-086-168/+125
| | | | | | | | | | | | | - Simplify signature of CreateVTableInitializer function. - Move vtable component builder to a separate function. - Remove unnecessary accessors from VTableLayout class. This is in preparation for a future change that will alter the type of the vtable initializer. Differential Revision: https://reviews.llvm.org/D22642 llvm-svn: 280897
* [llvm-cov] Use less space to describe source namesVedant Kumar2016-09-089-52/+40
| | | | | | | | In r279628, we made SourceCoverageView list the binary associated with a view and started adding labels (e.g "Source: foo" or "Function: bar") to everything. Condense this information a bit to unclutter reports. llvm-svn: 280896
* [llvm-cov] Drop the longest common filename prefix from summariesVedant Kumar2016-09-084-2/+48
| | | | | | | Remove the longest common prefix from filenames when printing coverage summaries. This makes them easier to compare. llvm-svn: 280895
* [CGP] Be less conservative about tail-duplicating a ret to allow tail callsMichael Kuperstein2016-09-084-28/+66
| | | | | | | | | | | | | | | | | CGP tail-duplicates rets into blocks that end with a call that feed the ret. This puts the call in tail position, potentially allowing the DAG builder to lower it as a tail call. To avoid tail duplication in cases where we won't form the tail call, CGP tried to predict whether this is going to be possible, and avoids doing it when lowering as a tail call will definitely fail. However, it was being too conservative by always throwing away calls to functions with a signext/zeroext attribute on the return type. Instead, we can use the same logic the builder uses to determine whether the attributes work out. Differential Revision: https://reviews.llvm.org/D24315 llvm-svn: 280894
* [AA] Fix typo in comment (s/hase/has).Justin Lebar2016-09-081-1/+1
| | | | llvm-svn: 280893
* Remove lldb coding conventions as they are no longer relevant.Jim Ingham2016-09-083-154/+0
| | | | llvm-svn: 280892
* [XRay] Remove unused variableDean Michael Berris2016-09-081-2/+2
| | | | llvm-svn: 280891
* [XRay] ARM 32-bit no-Thumb support in compiler-rtDean Michael Berris2016-09-089-117/+423
| | | | | | | | | | | | | This is a port of XRay to ARM 32-bit, without Thumb support yet. This is one of 3 commits to different repositories of XRay ARM port. The other 2 are: 1. https://reviews.llvm.org/D23931 (LLVM) 2. https://reviews.llvm.org/D23932 (Clang test) Differential Revision: https://reviews.llvm.org/D23933 llvm-svn: 280890
* [XRay] ARM 32-bit no-Thumb support in ClangDean Michael Berris2016-09-081-0/+13
| | | | | | | | | | | | | Just a test for now, adapted from x86_64 tests of XRay. This is one of 3 commits to different repositories of XRay ARM port. The other 2 are: 1. https://reviews.llvm.org/D23931 (LLVM) 2. https://reviews.llvm.org/D23933 (compiler-rt) Differential Review: https://reviews.llvm.org/D23932 llvm-svn: 280889
* [XRay] ARM 32-bit no-Thumb support in LLVMDean Michael Berris2016-09-0817-62/+317
| | | | | | | | | | | | This is a port of XRay to ARM 32-bit, without Thumb support yet. The XRay instrumentation support is moving up to AsmPrinter. This is one of 3 commits to different repositories of XRay ARM port. The other 2 are: 1. https://reviews.llvm.org/D23932 (Clang test) 2. https://reviews.llvm.org/D23933 (compiler-rt) Differential Revision: https://reviews.llvm.org/D23931 llvm-svn: 280888
* Deleted right filePiotr Padlewski2016-09-071-11/+0
| | | | llvm-svn: 280887
* Revert "[thinlto] Deleted unused test file"Piotr Padlewski2016-09-071-0/+46
| | | | | | This reverts commit a7ad00460027c4a92640c2a5706a7d1869b60989. llvm-svn: 280886
* [sanitizer] Fix a conflict between abort_on_error and handle_abort.Evgeniy Stepanov2016-09-073-1/+21
| | | | | | | | | Reset the SIGABRT signal handler before calling abort(). Also, change the error message when catching SIGABRT to say "ABRT" instead of "SEGV". llvm-svn: 280885
* IR: Remove Value::intersectOptionalDataWith, replace all calls with calls to ↵Peter Collingbourne2016-09-075-11/+6
| | | | | | | | | | Instruction::andIRFlags. The two functions are functionally equivalent. Differential Revision: https://reviews.llvm.org/D22830 llvm-svn: 280884
* Revert "[asan] Avoid lifetime analysis for allocas with can be in ambiguous ↵Vitaly Buka2016-09-072-115/+0
| | | | | | | | | | state" Fails on Windows. This reverts commit r280880. llvm-svn: 280883
* [thinlto] Deleted unused test filePiotr Padlewski2016-09-071-46/+0
| | | | | | | | | | | | | | | | | Summary: This file should be referenced from thinlto-function-summary-callgraph-pgo.ll file, but someone forgot to use it there. Everything worked because we store pgo data about callsite blocks, so there is no need to have pgo count of @func. Reviewers: tejohnson, eraman, mehdi_amini Subscribers: mehdi_amini, llvm-commits Differential Revision: https://reviews.llvm.org/D24309 llvm-svn: 280882
* [asan] Fix build on Linux.Evgeniy Stepanov2016-09-071-1/+1
| | | | llvm-svn: 280881
OpenPOWER on IntegriCloud