summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* NewGVN: We were not really failing this testcase, because the instructions ↵Daniel Berlin2017-03-061-7/+12
| | | | | | it was looking for are unused. GVN value numbers unused instructions, NewGVN does not. Fix the instructions to be used, so we eliminate the redundancies it's checking for, and un-XFAIL it llvm-svn: 297058
* [MS] Add support for __ud2 and __int2c MSVC intrinsicsReid Kleckner2017-03-064-3/+32
| | | | | | This was requested in PR31958 and elsewhere. llvm-svn: 297057
* [DWARF] NFC. A few bits of minor code cleanup.Chris Bieneman2017-03-063-13/+0
| | | | | | | | David Blaikie pointed out that the `setForceChildren` API is no longer needed and should be removed from the DWARF Generator APIs. Also the DWARFDebugInfoTest file had some copy pasted comments that are not relevant. I've removed them. llvm-svn: 297056
* [opt-diff] Fix the case when the script is invoked with directoriesAdam Nemet2017-03-061-1/+3
| | | | llvm-svn: 297055
* [IfConversion] Only renormalize probabilities if branches are analyzableKrzysztof Parzyszek2017-03-062-2/+40
| | | | | | | | | | | If a block has non-analyzable branches, the listed successors don't need to add up to one. For example, if a block has a conditional tail call, that tail call will not have a corresponding successor in the successor list, but will still be a possible branch. Differential Revision: https://reviews.llvm.org/D30556 llvm-svn: 297054
* Update log_options unit testPavel Labath2017-03-062-37/+42
| | | | | | | | | | it was accessing the details of the Log class directly. Let it go through the channel class instead. This also discovered a bug when we were setting but not clearing the log options when enabling a channel. llvm-svn: 297053
* [InstSimplify] refactor related div/rem folds; NFCISanjay Patel2017-03-061-47/+37
| | | | llvm-svn: 297052
* GlobalISel: don't emit degenerate G_INSERT instructions.Tim Northover2017-03-063-0/+48
| | | | | | | | | | | Before, we were producing G_INSERT instructions that were actually closer to a cast or even a COPY when both input and output sizes are the same. This doesn't really make sense and means that everything interpreting a G_INSERT also has to handle all these kinds of casts. So now we detect these degenerate cases and emit real casts instead. llvm-svn: 297051
* Further fixes and improvements to the ConstantInitBuilder API.John McCall2017-03-063-25/+267
| | | | llvm-svn: 297050
* Fully precise gc handling of __start and __stop symbols.Rafael Espindola2017-03-062-23/+25
| | | | | | | | | | | | | | | This puts us at parity with bfd, which could already gc this case. I noticed the sections not being gced when linking a modified freebsd kernel. A section that was not gced and not mentioned in the linker script would end up breaking the expected layout. Since fixing the gc is relatively simple and an improvement, that seems better than trying to hack the orphan placement code. There are 173 input section in the entire link whose names are valid C identifiers, so this is probably not too performance critical. llvm-svn: 297049
* [InstSimplify] add tests for vector div/rem with UB potential; NFCSanjay Patel2017-03-062-0/+84
| | | | llvm-svn: 297048
* NewGVN: Remove DebugUnknownExprs, just mark the instructions as unusedDaniel Berlin2017-03-061-7/+3
| | | | llvm-svn: 297047
* NewGVN: Only call isInstructionTrivially dead once per instruction.Daniel Berlin2017-03-061-9/+10
| | | | llvm-svn: 297046
* [X86] Fix arg copy elision for illegal typesReid Kleckner2017-03-062-41/+35
| | | | | | | | | | | Use the store size of the argument type, which will be a byte-sized quantity, rather than dividing the size in bits by 8. Fixes PR32136 and re-enables copy elision from i64 arguments. Reverts the workaround in from r296950. llvm-svn: 297045
* GlobalISel: add buildUndef method to MachineIRBuilder. NFC.Tim Northover2017-03-063-1/+8
| | | | llvm-svn: 297044
* Move many other files from Core -> Utility.Zachary Turner2017-03-0661-61/+60
| | | | llvm-svn: 297043
* GlobalISel: refactor legalization of G_INSERT.Tim Northover2017-03-064-48/+47
| | | | | | | | Now that G_INSERT instructions can only insert one register, this code was overly general. In another direction it didn't handle registers that crossed split boundaries properly, which needed to be fixed. llvm-svn: 297042
* [InstSimplify] regenerate checks; NFCSanjay Patel2017-03-062-16/+16
| | | | llvm-svn: 297040
* [TableGen] Ensure proper ordering of subtarget feature namesKrzysztof Parzyszek2017-03-062-4/+44
| | | | llvm-svn: 297039
* Remove the sample pgo annotation heuristic that uses call count to annotate ↵Dehao Chen2017-03-064-28/+11
| | | | | | | | | | | | | | | | basic block count. Summary: We do not need that special handling because the debug info is more accurate now. Performance testing shows no regression on google internal benchmarks. Reviewers: davidxl, aprantl Reviewed By: aprantl Subscribers: llvm-commits, aprantl Differential Revision: https://reviews.llvm.org/D30658 llvm-svn: 297038
* [modules] Add missing test from r297030.Vassil Vassilev2017-03-063-0/+17
| | | | llvm-svn: 297037
* A few improvements to deps analysis scripts.Zachary Turner2017-03-061-26/+42
| | | | | | | | 1) Looks in Plugins and clang 2) Adds a mode to display the deps sorted by the number of times the deps occurs in a particular project llvm-svn: 297036
* Fix line endings of deps analysis script.Zachary Turner2017-03-061-65/+65
| | | | llvm-svn: 297035
* [clang-format] Add tests for ambiguous namespaces to the comment fixerKrasimir Georgiev2017-03-061-0/+80
| | | | llvm-svn: 297034
* [Hexagon] Early-if-convert branches that may exit the loopKrzysztof Parzyszek2017-03-063-64/+198
| | | | | | | | | | | | | | | | Merge the tail block into the loop in cases where the main loop body exits early, subject to profitability constraints. This will coalesce the loop body into fewer blocks. For example: loop: loop: // loop body // loop body if (...) jump exit --> // more body more: if (...) jump exit // more body jump loop jump loop llvm-svn: 297033
* [Hexagon] Mark dead defs as <dead> in expand-condsetsKrzysztof Parzyszek2017-03-063-12/+127
| | | | | | | | | The code in updateDeadFlags removed unnecessary <dead> flags, but there can be cases where such a flag is not set, and yet a register has become dead. For example, if a mux with identical inputs is replaced with a COPY, the predicate register may no longer be used after that. llvm-svn: 297032
* [Hexagon] Pick a dot-old instruction that matches the architectureKrzysztof Parzyszek2017-03-064-4/+135
| | | | llvm-svn: 297031
* [modules] Make GNUMode a normal language option to fix module compilation.Vassil Vassilev2017-03-061-1/+1
| | | | | | | | | | | | | | | GNUMode shouldn't be a benign language option because it influences the resulting AST when checking for the existence of GNUMode-specific macro "linux" (e.g. by having code inside #ifdef linux). This patch marks it as a normal language option so it gets correctly passed to the compiler invocation for the used modules. The added test case illustrated this because it compiles without modules, but fails when using modules. Patch by Raphael Isemann (D30496)! llvm-svn: 297030
* [InstSimplify] remove misleading comments; NFCSanjay Patel2017-03-061-2/+2
| | | | | | Div/rem-of-0 does not cause faults/undef (not the same as div/rem-by-0). llvm-svn: 297029
* [clang-format] Make NamespaceEndCommentFixer add at most one commentKrasimir Georgiev2017-03-062-1/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Until now, NamespaceEndCommentFixer was adding missing comments for every run, which results in multiple end comments for: ``` namespace { int i; int j; } #if A int a = 1; #else int a = 2; #endif ``` result before: ``` namespace { int i; int j; }// namespace // namespace #if A int a = 1; #else int a = 2; #endif ``` result after: ``` namespace { int i; int j; }// namespace #if A int a = 1; #else int a = 2; #endif ``` Reviewers: djasper Reviewed By: djasper Subscribers: klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D30659 llvm-svn: 297028
* [Docs] Add missing quotes to the language literal in theAlex Lorenz2017-03-061-1/+1
| | | | | | external_source_symbol attribute docs llvm-svn: 297027
* [DAGCombiner] simplify div/rem-by-0Sanjay Patel2017-03-063-206/+26
| | | | | | | | | | | | | | | | | Refactoring of duplicated code and more fixes to follow. This is motivated by the post-commit comments for r296699: http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20170306/435182.html Ie, we can crash if we're missing obvious simplifications like this that exist in the IR simplifier or if these occur later than expected. The x86 change for non-splat division shows a potential opportunity to improve vector codegen: we assumed that since only one lane had meaningful results, we should do the math in scalar. But that means moving back and forth from vector registers. llvm-svn: 297026
* Add examples to clang-format configurationSylvestre Ledru2017-03-062-0/+173
| | | | | | | | | | | | Reviewers: klimek, djasper Reviewed By: djasper Subscribers: krasimir, kimgr, cfe-commits Differential Revision: https://reviews.llvm.org/D30532 llvm-svn: 297025
* [SLP] A test for vectorization of users of extractelement instructions,Alexey Bataev2017-03-061-3/+38
| | | | | | NFC. llvm-svn: 297024
* [CodeGen][Blocks] Refactor capture handling in code that generatesAlex Lorenz2017-03-061-118/+173
| | | | | | | | | | | | | block copy/destroy routines This is a preparation commit for work on merging unique block copy/destroy helper functions. rdar://22950898 Differential Revision: https://reviews.llvm.org/D30345 llvm-svn: 297023
* Header update with info about the current status of C++17Marshall Clow2017-03-061-1/+2
| | | | llvm-svn: 297022
* Update list with changes from Kona meetingMarshall Clow2017-03-061-4/+73
| | | | llvm-svn: 297021
* Fix minor typo introduce in r297014Tobias Grosser2017-03-061-1/+1
| | | | llvm-svn: 297020
* [Sema][ObjC] Warn about 'performSelector' calls with selectorsAlex Lorenz2017-03-065-8/+214
| | | | | | | | | | | | | | | | | | | that return record or vector types The performSelector family of methods from Foundation use objc_msgSend to dispatch the selector invocations to objects. However, method calls to methods that return record types might have to use the objc_msgSend_stret as the return value won't find into the register. This is also supported by this sentence from performSelector documentation: "The method should not have a significant return value and should take a single argument of type id, or no arguments". This commit adds a new warning that warns when a selector which corresponds to a method that returns a record type is passed into performSelector. rdar://12056271 Differential Revision: https://reviews.llvm.org/D30174 llvm-svn: 297019
* Silence a warning "hiding virtual function".Vassil Vassilev2017-03-061-0/+1
| | | | llvm-svn: 297018
* [x86] add tests to show missing div/rem simplifications; NFCSanjay Patel2017-03-061-0/+185
| | | | | | | These are not x86-specific, but the problem is not visible for all targets because it is masked by other transforms. These can lead to compiler crashes. llvm-svn: 297017
* [BasicBlockUtils] Check for nullptr before updating LoopInfo.Michael Kruse2017-03-061-3/+4
| | | | | | | | | | | | | | | | LoopInfo::getLoopFor returns nullptr if a BB is not in a loop and only then can the loop be updated to contain the newly created BBs. Add the missing nullptr check to SplitBlockAndInsertIfThen. Within LLVM, the only user of this function that also passes a LoopInfo to be updated is InnerLoopVectorizer::predicateInstructions(). As the method's name implies, the BB operataten on will always be within a loop, but out-of-tree users may also use it differently (here: Polly). All other uses of LoopInfo::getLoopFor in the file properly check its return value for nullptr. llvm-svn: 297016
* [DAG] fix formatting; NFCSanjay Patel2017-03-061-2/+1
| | | | llvm-svn: 297015
* New Test-Case for Region AnalysisTobias Grosser2017-03-061-0/+39
| | | | | | | | | | | | | | | While working on improvements to region info analysis, this test case caused an incorrect region bb2 => bb3 to be detected. Reviewers: grosser Contributed-by: Nandini Singhal <cs15mtech01004@iith.ac.in> Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D30652 llvm-svn: 297014
* Fix Log unit testsPavel Labath2017-03-061-3/+2
| | | | | | | the llvm function for getting the thread name dropped the _np suffix during review. Zachary's commit did not reflect that. llvm-svn: 297013
* Fix -Wc++11-narrowing.Rui Ueyama2017-03-061-1/+1
| | | | llvm-svn: 297012
* [DAG] fix typo in comment; NFCSanjay Patel2017-03-061-1/+1
| | | | llvm-svn: 297011
* Do not display highlights for clang-include-fixer-at-pointHaojian Wu2017-03-062-12/+26
| | | | | | | | | | | | | | Summary: When invoking clang-include-fixer-at-point, the QuerySymbolInfos point to offset 0, length 0. Rather than showing a hidden overlay, do not show any overlay at all for zero-length symbols. Patch by Torsten Marek! Reviewers: hokein, klimek Reviewed By: hokein Differential Revision: https://reviews.llvm.org/D30577 llvm-svn: 297010
* [clang-tidy] Ignore substituted template types in modernize-use-nullptr check.Haojian Wu2017-03-062-0/+18
| | | | | | | | | | | | Reviewers: alexfh Reviewed By: alexfh Subscribers: xazax.hun, malcolm.parsons, JDevlieghere, cfe-commits Differential Revision: https://reviews.llvm.org/D30639 llvm-svn: 297009
* [ELF] - Make Bss and BssRelRo sections to be synthetic (#2).George Rimar2017-03-068-78/+59
| | | | | | | | | | | | | | | In compare with D30458, this makes Bss/BssRelRo to be pure synthetic sections. That removes CopyRelSection class completely, making Bss/BssRelRo to be just regular synthetics. SharedSymbols involved in creating copy relocations are converted to DefinedRegular, what also simplifies things. Differential revision: https://reviews.llvm.org/D30541 llvm-svn: 297008
OpenPOWER on IntegriCloud