summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [asan] Add a dll thunk for __sanitizer_cov_module_init.Evgeniy Stepanov2014-05-281-0/+2
| | | | llvm-svn: 209718
* [asan] Add a few stubs to fix windows build.Evgeniy Stepanov2014-05-281-0/+12
| | | | llvm-svn: 209717
* [OPENMP] Additional checking for local vars in initial values for ↵Alexey Bataev2014-05-283-1/+41
| | | | | | threadprivate vars llvm-svn: 209716
* [AArch64] Add store post-index update folding regression tests for the ↵Tilmann Scheller2014-05-281-0/+125
| | | | | | | | | | | | | | | | load/store optimizer. Add regression tests for the following transformation: str X, [x20] ... add x20, x20, #32 -> str X, [x20], #32 with X being either w0, x0, s0, d0 or q0. llvm-svn: 209715
* [OPENMP] Reformatting of parsing code for OpenMP constructs.Alexey Bataev2014-05-281-43/+38
| | | | llvm-svn: 209714
* [OPENMP][C++11] Formatting and make more C++11 compliant of OpenMP sema.Alexey Bataev2014-05-281-256/+249
| | | | llvm-svn: 209713
* utils: Teach lldbDataFormatters to load automaticallyJustin Bogner2014-05-281-4/+12
| | | | | | | Add an __lldb_init_module function so that importing the lldbDataFormatters script automatically adds the formatters. llvm-svn: 209712
* [AArch64] Add load post-index update folding regression tests for the ↵Tilmann Scheller2014-05-281-0/+136
| | | | | | | | | | | | | | | | load/store optimizer. Add regression tests for the following transformation: ldr X, [x20] ... add x20, x20, #32 -> ldr X, [x20], #32 with X being either w0, x0, s0, d0 or q0. llvm-svn: 209711
* Fix formattingTobias Grosser2014-05-281-1/+1
| | | | llvm-svn: 209710
* [Mips] Do not mix _gp and _gp_disp symbols in relocation handling.Simon Atanasyan2014-05-282-14/+22
| | | | | | No functional changes. llvm-svn: 209709
* Move the logic for testing for namespace std into one location. This check canRichard Trieu2014-05-289-39/+34
| | | | | | be performed by using Decl::isInStdNamespace or DeclContext::isStdNamespace llvm-svn: 209708
* [mach-o] Add support for parsing of weak-def symbolsNick Kledzik2014-05-283-9/+44
| | | | llvm-svn: 209707
* Don't dllimport/export destructor variants implemented by thunks.Hans Wennborg2014-05-283-29/+28
| | | | | | | | | | | | MSVC doesn't export these functions, so trying to import them doesnt' work. Also, don't let any dll attributes on the CXXDestructorDecl influence the thunk's linkage -- they should always be linkonce_odr. This takes care of the FIXME's for this in Nico's tests. Differential Revision: http://reviews.llvm.org/D3930 llvm-svn: 209706
* [mach-o] rename test caseNick Kledzik2014-05-281-0/+0
| | | | llvm-svn: 209705
* [mach-o] Support parsing of non-lazy-pointer sectionsNick Kledzik2014-05-286-22/+190
| | | | llvm-svn: 209704
* Remove unused variable.Greg Clayton2014-05-281-2/+0
| | | | llvm-svn: 209703
* Allow classes to be intialized using current lldb::SB objects. This can help ↵Greg Clayton2014-05-281-4/+55
| | | | | | to import/export the current process state. llvm-svn: 209702
* [mach-o] Add support for initializers and terminators in object filesNick Kledzik2014-05-275-2/+229
| | | | llvm-svn: 209700
* [asan] use relative line numbers in testsGreg Fitzgerald2014-05-274-14/+14
| | | | llvm-svn: 209699
* Change representation of instruction ranges where variable is accessible.Alexey Samsonov2014-05-273-99/+110
| | | | | | | | | | | | | | Use more straightforward way to represent the set of instruction ranges where the location of a user variable is defined - vector of pairs of instructions (defining start/end of each range), instead of a flattened vector of instructions where some instructions are supposed to start the range, and the rest are supposed to "clobber" it. Simplify the code which generates actual .debug_loc entries. No functionality change. llvm-svn: 209698
* Factor out looking for prologue end into a functionAlexey Samsonov2014-05-271-12/+12
| | | | llvm-svn: 209697
* delinearize does not return a remainderSebastian Pop2014-05-272-5/+3
| | | | llvm-svn: 209696
* pass element size to delinearizationSebastian Pop2014-05-273-2/+9
| | | | | | | | | Instead of relying on the delinearization to infer the size of an element, compute the element size from the base address type. This is a much more precise way of computing the element size than before, as we would have mixed together the size of an element with the strides of the innermost dimension. llvm-svn: 209695
* avoid type mismatch when building SCEVsSebastian Pop2014-05-271-0/+26
| | | | | | | | | | | This is a corner case I have stumbled upon when dealing with ARM64 type conversions. I was not able to extract a testcase for the community codebase to fail on. The patch conservatively discards a division that would have ended up in an ICE due to a type mismatch when building a multiply expression. I have also added code to a place that builds add expressions and in which we should be careful not to pass in operands of different types. llvm-svn: 209694
* do not use the GCD to compute the delinearization stridesSebastian Pop2014-05-271-59/+8
| | | | | | | | | | | We do not need to compute the GCD anymore after we removed the constant coefficients from the terms: the terms are now all parametric expressions and there is no need to recognize constant terms that divide only a subset of the terms. We only rely on the size of the terms, i.e., the number of operands in the multiply expressions, to sort the terms and recognize the parametric dimensions. llvm-svn: 209693
* remove BasePointer before delinearizingSebastian Pop2014-05-274-39/+49
| | | | | | | | | | No functional change is intended: instead of relying on the delinearization to come up with the base pointer as a remainder of the divisions in the delinearization, we just compute it from the array access and use that value. We substract the base pointer from the SCEV to be delinearized and that simplifies the work of the delinearizer. llvm-svn: 209692
* remove constant termsSebastian Pop2014-05-278-34/+140
| | | | | | | | | | | | | | | | | | | | | | The delinearization is needed only to remove the non linearity induced by expressions involving multiplications of parameters and induction variables. There is no problem in dealing with constant times parameters, or constant times an induction variable. For this reason, the current patch discards all constant terms and multipliers before running the delinearization algorithm on the terms. The only thing remaining in the term expressions are parameters and multiply expressions of parameters: these simplified term expressions are passed to the array shape recognizer that will not recognize constant dimensions anymore: these will be recognized as different strides in parametric subscripts. The only important special case of a constant dimension is the size of elements. Instead of relying on the delinearization to infer the size of an element, compute the element size from the base address type. This is a much more precise way of computing the element size than before, as we would have mixed together the size of an element with the strides of the innermost dimension. llvm-svn: 209691
* Don't pre-populate the set of keys in the map with variable locations history.Alexey Samsonov2014-05-272-11/+3
| | | | | | | | | | Current implementation of calculateDbgValueHistory already creates the keys in the expected order (user variables are listed in order of appearance), and should do so later by contract. No functionality change. llvm-svn: 209690
* No need for those tests to go thru llvm-as and/or llvm-dis.Arnaud A. de Grandmaison2014-05-276-6/+6
| | | | | | opt can handle them by itself. llvm-svn: 209689
* Factor out comparison of Instruction "special" states.Arnaud A. de Grandmaison2014-05-271-84/+55
| | | | | | No functional change. llvm-svn: 209688
* Wording fix for llvm.global_dtors docs.Reid Kleckner2014-05-271-1/+1
| | | | llvm-svn: 209687
* Retain isImplicit flag for local variable declarations when instantiatingAlexander Kornienko2014-05-274-7/+25
| | | | | | | | | | | | | | templates. Reviewers: rsmith Reviewed By: rsmith Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D3924 llvm-svn: 209686
* [mach-o] Add checks that string literals in object files are zero terminatedNick Kledzik2014-05-271-0/+15
| | | | llvm-svn: 209685
* [mach-o] Add support for reading utf16 string literal sectionsNick Kledzik2014-05-273-0/+35
| | | | llvm-svn: 209684
* DebugInfo: partially revert cleanup committed in r209680David Blaikie2014-05-271-1/+2
| | | | | | | | | | I'm not sure exactly where/how we end up with an abstract DbgVariable with a null DIE, but we do... looking into it & will add a test and/or fix when I figure it out. Currently shows up in selfhost or compiler-rt builds. llvm-svn: 209683
* Add a test that we don't store stale modtime in modulesBen Langmuir2014-05-271-0/+37
| | | | | | | | | | | The change from r209195 turned out to be important to avoid saving stale modification time/expected size information in a module file when there are 3 or more modules in a dependency chain and the bottom one is rebuilt. So add a test for that. rdar://problem/17038180 llvm-svn: 209682
* Add make_dynamic_error_code().Nick Kledzik2014-05-273-3/+81
| | | | | | | | | | | This is a short-term fix to allow lld Readers to return error messages with dynamic content. The long term fix will be to enhance ErrorOr<> to work with errors other than error_code. Or to change the interface to Readers to pass down a diagnostics object through which all error messages are written. llvm-svn: 209681
* DebugInfo: Simplify solution to avoid DW_AT_artificial on inlined parameters.David Blaikie2014-05-273-23/+12
| | | | | | | Originally committed in r207717, I clearly didn't look very closely at the code to understand how existing things were working... llvm-svn: 209680
* Add range accessors for captures of a LambdaExpr.James Dennett2014-05-272-0/+24
| | | | | | | | | | | | | Summary: This adds LambdaExpr::captures(), LambdaExpr::explicit_captures() and LambdaExpr::implicit_captures() as simple wrappers over the underlying *_begin()/*_end() functions. Reviewers: aaron.ballman Differential Revision: http://reviews.llvm.org/D3926 llvm-svn: 209679
* [mips] Optimize long branch for MIPS64 by removing %higher and %highest.Sasa Stankovic2014-05-276-46/+30
| | | | | | | | | | %higher and %highest can have non-zero values only for offsets greater than 2GB, which is highly unlikely, if not impossible when compiling a single function. This makes long branch for MIPS64 3 instructions smaller. Differential Revision: http://llvm-reviews.chandlerc.com/D3281.diff llvm-svn: 209678
* DebugInfo: Create abstract function definitions even when concrete ↵David Blaikie2014-05-275-66/+62
| | | | | | | | | | | | | | | definitions preceed inline definitions. After much puppetry, here's the major piece of the work to ensure that even when a concrete definition preceeds all inline definitions, an abstract definition is still created and referenced from both concrete and inline definitions. Variables are still broken in this case (see comment in dbg-value-inlined-parameter.ll test case) and will be addressed in follow up work. llvm-svn: 209677
* DebugInfo: Avoid an extra map lookup when finding abstract subprogram DIEs.David Blaikie2014-05-271-1/+1
| | | | llvm-svn: 209676
* DebugInfo: Lazily construct subprogram definition DIEs.David Blaikie2014-05-2710-75/+88
| | | | | | | | | | | | | | | | A further step to correctly emitting concrete out of line definitions preceeding inlined instances of the same program. To do this, emission of subprograms must be delayed until required since we don't know which (abstract only (if there's no out of line definition), concrete only (if there are no inlined instances), or both) DIEs are required at the start of the module. To reduce the test churn in the following commit that actually fixes the bug, this commit introduces the lazy DIE construction and cleans up test cases that are impacted by the changes in the resulting DIE ordering. llvm-svn: 209675
* DebugInfo: Lazily attach definition attributes to definitions.David Blaikie2014-05-2710-26/+60
| | | | | | | | | | | | | | | | | | | | | This is a precursor to fixing inlined debug info where the concrete, out-of-line definition may preceed any inlined usage. To cope with this, the attributes that may appear on the concrete definition or the abstract definition are delayed until the end of the module. Then, if an abstract definition was created, it is referenced (and no other attributes are added to the out-of-line definition), otherwise the attributes are added directly to the out-of-line definition. In a couple of cases this causes not just reordering of attributes, but reordering of types. When the creation of the attribute is delayed, if that creation would create a type (such as for a DW_AT_type attribute) then other top level DIEs may've been constructed during the delay, causing the referenced type to be created and added after those intervening DIEs. In the extreme case, in cross-cu-inlining.ll, this actually causes the DW_TAG_basic_type for "int" to move from one CU to another. llvm-svn: 209674
* DebugInfo: Separate out the addition of subprogram attribute additions so ↵David Blaikie2014-05-272-9/+17
| | | | | | that they can be added later depending on whether or not the function is inlined. llvm-svn: 209673
* Objective-C. Fixes an obscuer crash caused by multiple inclusion ofFariborz Jahanian2014-05-272-1/+30
| | | | | | | same framework after complaining about duplicate class definition. // rdar://17024681 llvm-svn: 209672
* Fixed a test in r209670Jingyue Wu2014-05-271-2/+1
| | | | | | The test was outdated with r209537. llvm-svn: 209671
* Distribute sext/zext to the operands of and/or/xorJingyue Wu2014-05-272-13/+48
| | | | | | | | | | | | This is an enhancement to SeparateConstOffsetFromGEP. With this patch, we can extract a constant offset from "s/zext and/or/xor A, B". Added a new test @ext_or to verify this enhancement. Refactoring the code, I also extracted some common logic to function Distributable. llvm-svn: 209670
* DebugInfo: Fix argument ordering in test by adding argument numbering.David Blaikie2014-05-271-5/+19
| | | | | | | | | | This old test didn't have the argument numbering that's now squirelled away in the high bits of the line number in the DW_TAG_arg_variable metadata. Add the numbering and update the test to ensure arguments are in-order. llvm-svn: 209669
* Fix pr19841, bb are also unnamedRenato Golin2014-05-271-1/+1
| | | | llvm-svn: 209668
OpenPOWER on IntegriCloud