summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [PGO] Enable compression in pgo instrumentationXinliang David Li2016-02-082-28/+46
| | | | | | | | | | | | This reduces sizes of instrumented object files, final binaries, process images, and raw profile data. The format of the indexed profile data remain the same. Differential Revision: http://reviews.llvm.org/D16388 llvm-svn: 260118
* [PGO] Enable compression in pgo instrumentationXinliang David Li2016-02-0817-109/+216
| | | | | | | | | | | | This reduces sizes of instrumented object files, final binaries, process images, and raw profile data. The format of the indexed profile data remain the same. Differential Revision: http://reviews.llvm.org/D16388 llvm-svn: 260117
* Fix missing space (NFC)Rong Xu2016-02-082-3/+3
| | | | | | Fixed the inconsistently placed : (missing space) introduced in in r259811. llvm-svn: 260116
* Clean up a test; get rid of hard-wired char/wchar_t code for template fns ↵Marshall Clow2016-02-081-95/+56
| | | | | | that take any char type. Prep work for PR#26503 llvm-svn: 260115
* math: Add frexp ported from amd-builtinsAaron Watry2016-02-087-0/+151
| | | | | | | | | | | | | | | | | | The float implementation is almost a direct port from the amd-builtins, but instead of just having a scalar and float4 implementation, it has a scalar and arbitrary width vector implementation. The double scalar is also a direct port from AMD's builtin release. The double vector implementation copies the logic in the float vector implementation using the values from the double scalar version. Both have been tested in piglit using tests sent to that project's mailing list. Signed-off-by: Aaron Watry <awatry@gmail.com> Reviewed-by: Jan Vesely <jan.vesely@rutgers.edu> llvm-svn: 260114
* Use llvm::TempDIScope instead of manually deleting a temporary MDNode.Adrian Prantl2016-02-081-5/+4
| | | | llvm-svn: 260113
* [SCEV][LAA] Re-commit r260085 and r260086, this time with a fix for the memorySilviu Baranga2016-02-0810-41/+728
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sanitizer issue. The PredicatedScalarEvolution's copy constructor wasn't copying the Generation value, and was leaving it un-initialized. Original commit message: [SCEV][LAA] Add no wrap SCEV predicates and use use them to improve strided pointer detection Summary: This change adds no wrap SCEV predicates with: - support for runtime checking - support for expression rewriting: (sext ({x,+,y}) -> {sext(x),+,sext(y)} (zext ({x,+,y}) -> {zext(x),+,sext(y)} Note that we are sign extending the increment of the SCEV, even for the zext case. This is needed to cover the fairly common case where y would be a (small) negative integer. In order to do this, this change adds two new flags: nusw and nssw that are applicable to AddRecExprs and permit the transformations above. We also change isStridedPtr in LAA to be able to make use of these predicates. With this feature we should now always be able to work around overflow issues in the dependence analysis. Reviewers: mzolotukhin, sanjoy, anemet Subscribers: mzolotukhin, sanjoy, llvm-commits, rengolin, jmolloy, hfinkel Differential Revision: http://reviews.llvm.org/D15412 llvm-svn: 260112
* Add a unit test for r259973.Adrian Prantl2016-02-081-0/+20
| | | | llvm-svn: 260111
* [JumpThreading] Change a return of ComputeValueKnownInPredecessors()Haicheng Wu2016-02-081-1/+1
| | | | | | | | | Change a return statement of ComputeValueKnownInPredecessors() to be the same as the rest return statements of the function. Otherwise, it might return true with an empty Result when the current basic block has no predecessors and trigger the first assert of JumpThreading::ProcessThreadableEdges(). llvm-svn: 260110
* SelectionDAG: Lower some range metadata to AssertZextMatt Arsenault2016-02-084-3/+135
| | | | | | | | | | If a range has a lower bound of 0, add an AssertZext from the nearest floor power of two. This allows operations with some workitem intrinsics with known maximum ranges to use fast 24-bit multiplies. llvm-svn: 260109
* [clang-tidy] Some improvements in 'misc-definitions-in-headers' check.Haojian Wu2016-02-081-0/+4
| | | | | | | | | | Reviewers: alexfh Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D16979 llvm-svn: 260108
* [clang-tidy] Fix assertion failure on `at` function in modernize-loop-convert.Haojian Wu2016-02-084-3/+12
| | | | | | | | | | Reviewers: alexfh Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D16926 llvm-svn: 260107
* Re-apply for the 2nd-time r259977 - [OpenMP] Reorganize code to allow ↵Samuel Antao2016-02-087-3/+92
| | | | | | | | specialized code generation for different devices. This was reverted by r260036, but was not the cause of the problem in the buildbot. llvm-svn: 260106
* [clang-tidy] Correct IncorrectRoundings namespace.Haojian Wu2016-02-082-1/+4
| | | | | | | | | | Reviewers: alexfh Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D16987 llvm-svn: 260105
* Move static functions returning UDTs outside of the extern "C" block. ↵Aaron Ballman2016-02-081-32/+33
| | | | | | Silences an MSVC warning, and reduces the number of exported symbols. llvm-svn: 260104
* Fix the alignment of PT_PHDR.Rafael Espindola2016-02-084-4/+5
| | | | | | | We were claiming it was aligned to 8 bytes even on 32 bit files, which is not the case. llvm-svn: 260102
* [AVX512][PROLQ][PROLD] Change imm8 to intMichael Zuckerman2016-02-084-42/+42
| | | | | | Differential Revision: http://reviews.llvm.org/D16983 llvm-svn: 260101
* [clang-tidy] Reshuffled paragraphs a bit, added contents.Alexander Kornienko2016-02-081-13/+19
| | | | llvm-svn: 260100
* [clang-tidy] Fix an error in .rstAlexander Kornienko2016-02-081-2/+4
| | | | llvm-svn: 260099
* [clang-tidy] Update documentationAlexander Kornienko2016-02-081-0/+9
| | | | | | | | | | | | Summary: We have 2 scripts add_new_check.py and rename_check.py to bootstrap a new check creation. There is also clang-query to aid with the matcher creation. These were not mentioned in the current document, add them so it's available to the masses. Reviewers: alexfh Patch by Deniz Türkoglu! Differential Revision: http://reviews.llvm.org/D16944 llvm-svn: 260098
* Reverting r260096; it causes build bot failures:Aaron Ballman2016-02-084-185/+171
| | | | | | | http://bb.pgr.jp/builders/cmake-clang-tools-x86_64-linux/builds/23351 http://lab.llvm.org:8011/builders/clang-s390x-linux/builds/492 llvm-svn: 260097
* Expand the simplify boolean expression check to handle implicit conversion ↵Aaron Ballman2016-02-084-171/+185
| | | | | | | | | | | | of integral types to bool and improve the handling of implicit conversion of member pointers to bool. Implicit conversion of member pointers are replaced with explicit comparisons to nullptr. Implicit conversions of integral types are replaced with explicit comparisons to 0. Patch by Richard Thomson. llvm-svn: 260096
* [SLP] Fix placement of debug statement (NFC)Igor Breger2016-02-081-7/+7
| | | | | | | | By Ayal Zaks (ayal.zaks@intel.com) Differential Revision: http://reviews.llvm.org/D16976 llvm-svn: 260094
* clang/test/OpenMP/parallel_private_codegen.cpp: Fix an expression.NAKAMURA Takumi2016-02-081-1/+1
| | | | | | | | | | call x86_thiscallcc void @_ZN2SSC1ERi( It matched to: <call> x86_this<callcc void @_ZN2SSC1ERi(> llvm-svn: 260093
* [OPENMP] Fix test incompatibility with arm buildbotsAlexey Bataev2016-02-081-2/+2
| | | | llvm-svn: 260092
* [OPENMP] Fixed test incompat with MSVCAlexey Bataev2016-02-081-1/+1
| | | | llvm-svn: 260091
* [asan] XFAIL local_alias.cc testcase on android in order to fix ↵Maxim Ostapenko2016-02-081-0/+2
| | | | | | sanitizer-x86_64-linux buildbot. llvm-svn: 260090
* AVX512: Change builtin function name for scalar intrinsics. Add "mask" to ↵Igor Breger2016-02-081-38/+38
| | | | | | | | function name to reflect the function behavior. Differential Revision: http://reviews.llvm.org/D16958 llvm-svn: 260089
* AVX512: Change builtin function name for scalar intrinsics. Add "mask" to ↵Igor Breger2016-02-083-96/+96
| | | | | | | | function name to reflect the function behavior. Differential Revision: http://reviews.llvm.org/D16957 llvm-svn: 260088
* Revert r260086 and r260085. They have broken the memorySilviu Baranga2016-02-0810-727/+41
| | | | | | sanitizer bots. llvm-svn: 260087
* [LoopVersioning] Don't assert when there are no memchecksSilviu Baranga2016-02-082-11/+10
| | | | | | | | | | | | We shouldn't assert when there are no memchecks, since we can have SCEV checks. There is already an assert covering the case where there are no SCEV checks or memchecks. This also changes the LAA pointer wrapping versioning test to use the loop versioning pass (this was how I managed to trigger the assert in the loop versioning pass). llvm-svn: 260086
* [SCEV][LAA] Add no wrap SCEV predicates and use use them to improve strided ↵Silviu Baranga2016-02-089-40/+727
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | pointer detection Summary: This change adds no wrap SCEV predicates with: - support for runtime checking - support for expression rewriting: (sext ({x,+,y}) -> {sext(x),+,sext(y)} (zext ({x,+,y}) -> {zext(x),+,sext(y)} Note that we are sign extending the increment of the SCEV, even for the zext case. This is needed to cover the fairly common case where y would be a (small) negative integer. In order to do this, this change adds two new flags: nusw and nssw that are applicable to AddRecExprs and permit the transformations above. We also change isStridedPtr in LAA to be able to make use of these predicates. With this feature we should now always be able to work around overflow issues in the dependence analysis. Reviewers: mzolotukhin, sanjoy, anemet Subscribers: mzolotukhin, sanjoy, llvm-commits, rengolin, jmolloy, hfinkel Differential Revision: http://reviews.llvm.org/D15412 llvm-svn: 260085
* [clang-tidy] Move incorrect-roundings to upstream.Haojian Wu2016-02-087-1/+216
| | | | | | | | | | | | Summary: This is originally implemented by Jacques Pienaar. Reviewers: alexfh Subscribers: cfe-commits, jpienaar Differential Revision: http://reviews.llvm.org/D16764 llvm-svn: 260084
* [ELF][MIPS] Support R_MIPS_COPY relocationSimon Atanasyan2016-02-083-0/+72
| | | | | | | Generate R_MIPS_COPY relocation for 'static' relocations against object symbols defined in a shared libraries. llvm-svn: 260083
* Show real error message in -data-evaluate-expressionEugene Leviant2016-02-083-4/+9
| | | | llvm-svn: 260082
* Revert "Enable test_lldbmi_settings_set_target_run_args_before on linux"Pavel Labath2016-02-081-0/+1
| | | | | | Test is still flaky. llvm-svn: 260081
* clang-format: Fix weird alignment when not aligning after brackets.Daniel Jasper2016-02-082-1/+7
| | | | | | | | | | | | | | | | Before: bbbbbbbbbbbb(aaaaaaaaaaaaaaaaaaaaaaaa, // ccccccc(aaaaaaaaaaaaaaaaa, // b)); After: bbbbbbbbbbbb(aaaaaaaaaaaaaaaaaaaaaaaa, // ccccccc(aaaaaaaaaaaaaaaaa, // b)); This fixes llvm.org/PR24905. llvm-svn: 260080
* [asan] XFAIL local alias related tests on Mips due to ↵Maxim Ostapenko2016-02-082-0/+3
| | | | | | https://llvm.org/bugs/show_bug.cgi?id=26525. llvm-svn: 260079
* Have lldb-server log the timestamp in its log messagesPavel Labath2016-02-081-1/+1
| | | | llvm-svn: 260078
* [OPENMP 4.5] Ccapture/codegen of private non-static data members.Alexey Bataev2016-02-0819-31/+343
| | | | | | | OpenMP 4.5 introduces privatization of non-static data members of current class in non-static member functions. To correctly handle such kind of privatization a new (pseudo)declaration VarDecl-based node is added. It allows to reuse an existing code for capturing variables in Lambdas/Block/Captured blocks of code for correct privatization and codegen. llvm-svn: 260077
* [asan] Introduce new approach for ODR violation detection based on odr ↵Maxim Ostapenko2016-02-086-12/+122
| | | | | | | | | | | | | | indicator symbols. This is a compiler-rt part of this http://reviews.llvm.org/D15642 patch. Here, we add a new approach for ODR violation detection. Instead of using __asan_region_is_poisoned(g->beg, g->size_with_redzone) on global address (that would return false now due to using private alias), we can use new globally visible indicator symbol to perform the check. Differential Revision: http://reviews.llvm.org/D15644 llvm-svn: 260076
* [asan] Introduce new hidden -asan-use-private-alias option.Maxim Ostapenko2016-02-082-6/+67
| | | | | | | | | | | | | | | | As discussed in https://github.com/google/sanitizers/issues/398, with current implementation of poisoning globals we can have some CHECK failures or false positives in case of mixing instrumented and non-instrumented code due to ASan poisons innocent globals from non-sanitized binary/library. We can use private aliases to avoid such errors. In addition, to preserve ODR violation detection, we introduce new __odr_asan_gen_XXX symbol for each instrumented global that indicates if this global was already registered. To detect ODR violation in runtime, we should only check the value of indicator and report an error if it isn't equal to zero. Differential Revision: http://reviews.llvm.org/D15642 llvm-svn: 260075
* [Concepts] Implement a portion of Concepts TS[dcl.spec.concept]p1 byNathan Wilson2016-02-085-24/+83
| | | | | | | | | | | | | | diagnosing when 'concept' is specified on a function or template specialization. Since a concept can only be applied to a function or variable template, the concept bit is stored in TemplateDecl as a PointerIntPair. Reviewers: rsmith, faisalv, aaron.ballman, hubert.reinterpretcast Differential Revision: http://reviews.llvm.org/D13357 llvm-svn: 260074
* ELF: Simplify getFdeEncoding.Rui Ueyama2016-02-081-58/+15
| | | | | | | | | | | | | | | | | | | I found that the handling of 'L' character in an augmentation string is wrong because 'L' means that the next byte is the length field. I could have fixed that by just skipping the next byte, but I decided to take a different approach. Teaching the linker about all the types of CIE internal records just to skip them is silly. And the code doing that is not actually executed now (that's why the bug did not cause any issue.) It is because the 'R' field, which we want to read, is always at beginning of the CIE. So I reduced the code dramatically by assuming that that's always the case. I want to see how it works in the wild. If it doesn't work, we can roll this back (with a fix for 'L'). http://reviews.llvm.org/D16939 llvm-svn: 260073
* [LLDB][MIPS] Fix TestExpressionInSyscall.py for MIPSBhushan D. Attarde2016-02-082-4/+26
| | | | | | | | | | | | SUMMARY: This patch fixes TestExpressionInSyscall.py and solves bug 23659 for MIPS. Corrected indentation at couple of places. Reviewers: clayborg Subscribers: mohit.bhakkad, sagar, jaydeep, lldb-commits Differential Revision: http://reviews.llvm.org/D16916 llvm-svn: 260072
* build: silence warnings in in-tree buildSaleem Abdulrasool2016-02-081-14/+17
| | | | | | | | Avoid the developer warnings from cmake when configuring libc++ as part of the LLVM layout. Setup the custom macro paths earlier to re-use the detection logic prior to setting the project properties. llvm-svn: 260071
* [WebAssembly] Add another optimization idea to README.txt.Dan Gohman2016-02-081-0/+5
| | | | llvm-svn: 260070
* [X86] Change FeatureIFMA string to 'avx512ifma'. Matches gcc and fixes PR26461.Craig Topper2016-02-085-5/+5
| | | | llvm-svn: 260069
* [Support] Use hexdigit. NFCCraig Topper2016-02-081-3/+2
| | | | llvm-svn: 260068
* [Support] Fix the examples and assertion for format_hex_no_prefix to take ↵Craig Topper2016-02-081-4/+4
| | | | | | into account that there are no prefix characters to include in Width. llvm-svn: 260067
OpenPOWER on IntegriCloud