summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Replace -mllvm -asan-use-after-scope=1 with -fsanitize-address-use-after-scopeVitaly Buka2016-07-1411-11/+11
| | | | | | | | | | | | | | Summary: When test was added we had no -fsanitize-address-use-after-scope in clang so we had to use -mllvm -asan-use-after-scope=1. Reviewers: eugenis Subscribers: kubabrecka Differential Revision: https://reviews.llvm.org/D22382 llvm-svn: 275475
* [ThinLTO/gold] Perform index-based weak/linkonce resolutionTeresa Johnson2016-07-143-17/+157
| | | | | | | | | | | | | | | | | | | | Summary: Invoke the weak/linkonce symbol resolution support (already used by libLTO) that operates via the summary index. This ensures prevailing linkonce are kept, by making them weak, and marks preempted copies as available_externally when possible. With this change, the older support for keeping the prevailing linkonce (by changing their symbol resolution) is removed. Reviewers: mehdi_amini Subscribers: llvm-commits, mehdi_amini Differential Revision: http://reviews.llvm.org/D22302 llvm-svn: 275474
* [LV] Rename StrideAccesses to AccessStrideInfo (NFC)Matthew Simpson2016-07-141-12/+12
| | | | | | | We now collect all accesses with a constant stride, not just the ones with a stride greater than one. This change was requested in the review of D19984. llvm-svn: 275473
* fix command-line LLDB so NSLog messages show upTodd Fiala2016-07-148-0/+390
| | | | | | | | | | | Changes to the underlying logging infrastructure in Fall 2016 Darwin OSes were no longer showing up NSLog messages in command-line LLDB. This change restores that functionality, and adds test cases to verify the new behavior. rdar://26732492 llvm-svn: 275472
* [LV] Allow interleaved accesses in loops with predicated blocksMatthew Simpson2016-07-142-34/+194
| | | | | | | | | | This patch allows the formation of interleaved access groups in loops containing predicated blocks. However, the predicated accesses are prevented from forming groups. Differential Revision: https://reviews.llvm.org/D19694 llvm-svn: 275471
* don't repeat function names in comments; NFCSanjay Patel2016-07-141-29/+28
| | | | llvm-svn: 275470
* [Object] Change Archive::findSym to return an Expected<Optional<Child>>.Lang Hames2016-07-144-22/+20
| | | | | | | As suggested by Rafael in review of D22079 - this was accidentally left out of the final commit (r275316). llvm-svn: 275469
* [SCCP] Pass the Solver by reference, copies are expensive ...Davide Italiano2016-07-141-2/+2
| | | | | | | | .. enough to cause LTO compile time to regress insanely. Thanks *a lot* to Rafael for reporting the problem and testing the fix! llvm-svn: 275468
* Add recently added TargetOptions::EnableIPRA member to operator==Mehdi Amini2016-07-141-1/+2
| | | | llvm-svn: 275467
* [arcmt/objcmt] Fix ParentMap crash with invalid code.Argyrios Kyrtzidis2016-07-143-0/+40
| | | | | | rdar://22489560 llvm-svn: 275466
* [ValueTracking] Use Instruction::getFunction; NFCSanjoy Das2016-07-141-4/+2
| | | | llvm-svn: 275465
* Attempt to workaround Windows bots after my previous commitBen Langmuir2016-07-141-2/+3
| | | | | | | | | For some reason it seems the second invocation is getting DMOD_OTHER_H set to a path with/forward/slashes, but one of the use sites has\back\slashes. There should be no difference with what was already there, but for now try to avoid checking those paths. llvm-svn: 275464
* s/constexpr/LLVM_CONSTEXPR in AArch64InstrInfo.cpp.Justin Lebar2016-07-141-1/+1
| | | | | | Yet again. llvm-svn: 275463
* Reverting 275417Roger Ferrer Ibanez2016-07-1410-474/+1
| | | | | | This change has triggered unexpected failures. llvm-svn: 275462
* cppcoreguidelines-pro-bounds-constant-array-index: crash for value dependent ↵Matthias Gehre2016-07-142-0/+15
| | | | | | | | | | | | | | | | | | | | | | index in c++03 mode Summary: When the expression is value dependent, isIntegerConstantExpr() crashes in C++03 mode with ../tools/clang/lib/AST/ExprConstant.cpp:9330: (anonymous namespace)::ICEDiag CheckICE(const clang::Expr *, const clang::ASTContext &): Assertion `!E->isValueDependent() && "Should not see value dependent exprs!"' failed. In C++11 mode, that assert does not trigger. This commit works around this in the check. We don't check value-dependent indices and instead check their specialization. Reviewers: alexfh, aaron.ballman Subscribers: nemanjai, cfe-commits Differential Revision: http://reviews.llvm.org/D22190 llvm-svn: 275461
* When importing classes and structs with anonymous structs, it is critical thatSean Callanan2016-07-144-9/+43
| | | | | | | | | | | | | | | | | | | | | | | distinct anonymous structs remain distinct despite having similar layout. This is already ensured by distinguishing based on their placement in the parent struct, using the function `findAnonymousStructOrUnionIndex`. The problem is that this function only handles anonymous structs, like ``` class Foo { struct { int a; } } ``` and not untagged structs like ``` class Foo { struct { int a; } var; } ``` Both need to be handled, and this patch fixes that. The test case ensures that this functionality doesn't regress. Thanks to Manman Ren for review. https://reviews.llvm.org/D22270 llvm-svn: 275460
* Add support for Objective-C class properties.Greg Clayton2016-07-143-7/+43
| | | | | | | | Added test cases to exiting tests to cover the new functionality. <rdar://problem/24311282> llvm-svn: 275459
* [Hexagon] Packetize function call arguments with tail call instructionsKrzysztof Parzyszek2016-07-144-1/+35
| | | | | | | | On Hexagon is it legal to packetize the instructions setting up call arguments with the call instruction itself. This was already done, except for tail calls. Make sure tail calls are handled as well. llvm-svn: 275458
* [AArch64] Adjust the scheduling model for Exynos-M1.Evandro Menezes2016-07-141-0/+1
| | | | | | Enable use-postra-scheduler. (NFC) llvm-svn: 275457
* [JumpThreading] PRE unordered loadsSanjoy Das2016-07-142-5/+145
| | | | | | | | | | | | Summary: Extend JumpThreading's PRE to unordered atomic loads. Reviewers: hfinkel, reames Subscribers: mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D22326 llvm-svn: 275456
* Add debugging code to the packetizerKrzysztof Parzyszek2016-07-141-0/+25
| | | | llvm-svn: 275455
* [index] Index system ImportDecls even when there is a DeclarationsOnly filterBen Langmuir2016-07-143-6/+10
| | | | | | | | | | | | Whether we call an ImportDecl a decl or a reference symbol role is somewhat academic, but in practice it's more like a declaration because it is interesting even to consumers who wouldn't care about references. Most importantly, we want to report the module dependencies of system modules even when we have declaration-only filtering. rdar://problem/27134855 llvm-svn: 275454
* [PM] Port Dead Loop Deletion Pass to the new PMJun Bum Lim2016-07-147-59/+115
| | | | | | | | | | | | Summary: Port Dead Loop Deletion Pass to the new pass manager. Reviewers: silvas, davide Subscribers: llvm-commits, sanjoy, mcrosier Differential Revision: https://reviews.llvm.org/D21483 llvm-svn: 275453
* [CodeGen] Refactor MachineMemOperand::Flags's target-specific flags.Justin Lebar2016-07-144-38/+17
| | | | | | | | | | | | | | | | | Summary: Make the target-specific flags in MachineMemOperand::Flags real, bona fide enum values. This simplifies users, prevents various constants from going out of sync, and avoids the false sense of security provided by declaring static members in classes and then forgetting to define them inside of cpp files. Reviewers: MatzeB Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D22372 llvm-svn: 275451
* TableGen: Fix a confusing use of both i and I as variables. NFCJustin Bogner2016-07-141-5/+5
| | | | llvm-svn: 275450
* [sanitizer-coverage] make sure that calls to __sanitizer_cov_trace_pc are ↵Kostya Serebryany2016-07-142-6/+12
| | | | | | not merged (otherwise different calls get the same PC and confuse fuzzers) llvm-svn: 275449
* Update error message to use "ld.lld" instead of "lld -flavor gnu".Rui Ueyama2016-07-141-2/+2
| | | | | | | | | | | | Dispatching based on argv[0] seems to be more convenient for users than dispatching based on -flavor option. Currently, when a user invoke LLD as "lld", we recommend them pass -flavor option. This patch changes the message so that we recommend use ld.lld, ld or lld-link instead. Differential Revision: http://reviews.llvm.org/D22321 llvm-svn: 275448
* Remove TargetInfo::getImageBase. NFC.Rui Ueyama2016-07-143-8/+4
| | | | llvm-svn: 275447
* Set DT_MIPS_BASE_ADDRESS correctly if -image-base is given.Rui Ueyama2016-07-142-2/+8
| | | | | | Differential Revision: http://reviews.llvm.org/D22323 llvm-svn: 275446
* [X86][MC] Fix bracket expression parsing in intel-style assembly.Nirav Dave2016-07-142-2/+10
| | | | | | | | | | | | | | Only perform struct field check on Identifier tokens. Fixes PR28547. Reviewers: rnk Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D22361 llvm-svn: 275445
* [GlobalISel] Fix G_OR opcode after the addition of a TargetOpcode.Ahmed Bougacha2016-07-141-2/+2
| | | | | | r275367 fixed G_ADD and G_BR, but not G_OR. llvm-svn: 275444
* [CodeGen] Simplify reg bank/class union is+get into dyn_cast. NFC.Ahmed Bougacha2016-07-141-6/+2
| | | | llvm-svn: 275443
* X86: handle external tail calls in Windows JITSaleem Abdulrasool2016-07-142-4/+8
| | | | | | | | | | If there was a tail call, we would incorrectly handle the relocation. It would end up indexing into the array with an incorrect section id. The symbol was external to the module, so the Section ID was UNDEFINED (-1). We would then index the SmallVector with this ID, triggering an assertion. Use the Value rather than the section load address in this case. llvm-svn: 275442
* [CodeGen] s/constexpr/LLVM_CONSTEXPR/ in MachineMemOperand.h.Justin Lebar2016-07-141-3/+3
| | | | llvm-svn: 275441
* Despite there being an option, it seems that Sphinx has decided that "=123" ↵Aaron Ballman2016-07-141-2/+2
| | | | | | is part of the option directive name, and so having "=0" in the option tag is problematic. Since the option tag is part of the option directive definition, it's superfluous, and so I've removed it. llvm-svn: 275440
* auto-generate checksSanjay Patel2016-07-141-394/+458
| | | | | | | Note: I removed the checks after each jump because that's noise, but we apparently need branches rather than returning i1 to see the bt codegen in some cases. llvm-svn: 275439
* [CodeGen] Refactor MachineMemOperand's Flags enum.Justin Lebar2016-07-144-32/+50
| | | | | | | | | | | | | | | | | | | | | | | | Summary: - Give it a shorter name (because we're going to refer to it often from SelectionDAG and friends). - Split the flags and alignment into separate variables. - Specialize FlagsEnumTraits for it, so we can do bitwise ops on it without losing type information. - Make some enum values constants in MachineMemOperand instead. MOMaxBits should not be a valid Flag. - Simplify some of the bitwise ops for dealing with Flags. Reviewers: chandlerc Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D22281 llvm-svn: 275438
* ARM: fix vmov.i64 immediate validity checkTim Northover2016-07-142-1/+4
| | | | | | Typo meant we were only checking the low byte (repeatedly). llvm-svn: 275437
* GPGPU: Generate an AST for the GPU-mapped scheduleTobias Grosser2016-07-146-14/+161
| | | | | | | | | | For this we need to provide an explicit list of statements as they occur in the polly::Scop to ppcg. We also setup basic AST printing facilities to facilitate debugging. To allow code reuse some (minor) changes in ppcg are have been necessary. llvm-svn: 275436
* GPGPU: Add dummy implementation for ast expression constructionTobias Grosser2016-07-143-4/+37
| | | | | | | | | | | | | Instead of calling to a pet function that does not return anything, we pass our own dummy implementation to ppcg that always returns a nullptr. This ensures that the list of ast expressions always contains a nullptr and we do not accidentally free a random (uninitalized) pointer. This resolves the last valgrind warning we see. We provide an implementation for this function, when the generated AST expressions can be used and consequently can be tested. llvm-svn: 275435
* GlobalsAA: Functions with the argmemonly attribute won't read arbitrary globalsTom Stellard2016-07-142-1/+32
| | | | | | | | | | | | | | | | | Summary: In preparation for changing GlobalsAA to stop assuming that intrinsics can't read arbitrary globals, we need to make sure GlobalsAA is querying function attributes rather than relying on this assumption. This patch was inspired by: http://reviews.llvm.org/D20206 Reviewers: jmolloy, hfinkel Subscribers: eli.friedman, llvm-commits Differential Revision: https://reviews.llvm.org/D21318 llvm-svn: 275433
* Don't optimize movs to pushes in -O0 builds.Nico Weber2016-07-143-24/+24
| | | | | | https://reviews.llvm.org/D22362 llvm-svn: 275431
* Removing a few more :option: tags that we do not have corresponding .. ↵Aaron Ballman2016-07-141-3/+3
| | | | | | option directives for; these are causing the sphinx bot to fail (http://lab.llvm.org:8011/builders/clang-sphinx-docs/builds/15197/steps/docs-clang-html/logs/stdio). llvm-svn: 275430
* Delete some trailing whitespace.Nico Weber2016-07-141-2/+2
| | | | llvm-svn: 275429
* [OpenCL] In test/Driver/opencl.cl, don't require name of Clang binary to ↵Benjamin Kramer2016-07-141-14/+14
| | | | | | | | | | | | | | contain "clang" The test currently fails if the name of the Clang binary doesn't contain "clang". This patch removes that requirement, as some environments may choose to run the test with a differently named binary. This shouldn't make the test any less strict -- the only place where the flags we're searching for can really occur is the Clang command line. Patch by Martin Böhme! Differential Revision: https://reviews.llvm.org/D22359 llvm-svn: 275428
* [X86] Decode MPX BND registers.Ahmed Bougacha2016-07-143-15/+29
| | | | | | | | | | | | | We were able to assemble, but not disassemble. Note that fixupRMValue was truncating EA_REG_BND0-3 because we hit the uint8_t max. The control registers were already squarely above it, but I don't think they ever go in .r/m, only in .reg. I also did notice an extra REX.W in our encoding, but I think that's fine. llvm-svn: 275427
* [X86] Don't mark addressing mode operands as "outs". NFC-ish.Ahmed Bougacha2016-07-141-12/+12
| | | | | | | Nothing in-tree can tell the difference, but it's incorrect: the addressing mode registers aren't what's defined. llvm-svn: 275426
* [TableGen] Autobrief-ize Record. NFC.Ahmed Bougacha2016-07-142-75/+75
| | | | llvm-svn: 275425
* [TableGen] Cleanup Record comments. NFC.Ahmed Bougacha2016-07-142-68/+4
| | | | | | | LLVM doesn't use exceptions anymore. Also remove the implementation comments. Some of them diverged. llvm-svn: 275424
* [GlobalISel] Fix #include ordering/spacing. NFC.Ahmed Bougacha2016-07-142-3/+2
| | | | llvm-svn: 275423
OpenPOWER on IntegriCloud