summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [X86][SSE] Add initial <2 x half> tests for PR31088Simon Pilgrim2017-04-291-0/+105
| | | | | | As discussed on D32391, test X86/X64 SSE2 and X64 F16C. llvm-svn: 301744
* [clang-tidy] Expand AllowConditional*Casts to binary logical operatorsAlexander Kornienko2017-04-292-13/+26
| | | | llvm-svn: 301743
* Remove Sema::CheckForIntOverflow, and instead check all full-expressions.Nick Lewycky2017-04-2916-65/+41
| | | | | | | | CheckForIntOverflow used to implement a whitelist of top-level expressions to send to the constant expression evaluator, which handled many more expressions than the CheckForIntOverflow whitelist did. llvm-svn: 301742
* [ConstantRange] Use ternary operator instead of 'if' to avoid copying an ↵Craig Topper2017-04-291-10/+4
| | | | | | APInt and then possibly copying over it. llvm-svn: 301741
* [ConstantRange] Add std::move to a bunch of places that pass local APInts to ↵Craig Topper2017-04-291-24/+25
| | | | | | | | ConstantRange constructor. The ConstantRange constructor takes APInt by value so without these moves we are making copies. llvm-svn: 301740
* Remove unused private field.Zachary Turner2017-04-291-4/+3
| | | | llvm-svn: 301738
* [ConstantRange] Remove a temporary APInt I meant to delete in r300621. NFCCraig Topper2017-04-291-1/+0
| | | | llvm-svn: 301737
* [ConstantRange] Improve the efficiency of one of the ConstantRange constructors.Craig Topper2017-04-291-6/+3
| | | | | | | | | | We were default constructing the Lower/Upper APInts. Then creating min or max value, then doing a move assignment to Lower and copy assignment to upper. The copy assignment operator in particular has an out of line function call that has to examine whether or not a previous allocation exists that can be reused which of course it can't in this case. The new code creates the min/max value first, move constructs Lower from it then copy constructs Upper from Lower. This also seems to have convinced a self host build that this constructor can be inlined more readily into other methods in ConstantRange. llvm-svn: 301736
* Fix PR32831: 'this capture while instantiating generic lambda call operator ↵Faisal Vali2017-04-292-13/+103
| | | | | | | | | | specialization When computing the appropriate cv-qualifiers for the 'this' capture, we have to examine each enclosing lambda - but when using the FunctionScopeInfo stack we have to ensure that the lambda below (outer) is the decl-context of the closure-class of the current lambda. https://bugs.llvm.org/show_bug.cgi?id=32831 llvm-svn: 301735
* [Polly] Make PollyCore depends on intrinsics_genHongbin Zheng2017-04-291-1/+1
| | | | llvm-svn: 301734
* Remove some apparently-unnecessary 'REQUIRES: system-darwin' from tests.Richard Smith2017-04-293-3/+3
| | | | | | Let's see if any buildbots actually have trouble with these. (They at least pass on Linux.) llvm-svn: 301732
* Fix "REQUIRES: system-darwin" failing tests after r301725.Richard Smith2017-04-292-4/+4
| | | | | | | Also remove the apparently-unneeded REQUIRES (the tests also pass on at least Linux, and don't appear to have anything Darwin-specific in them). llvm-svn: 301731
* AMDGPU: Fix copies from physical registers in SIFixSGPRCopiesMatt Arsenault2017-04-292-4/+23
| | | | | | | | | This would assert when there were multiple defs of a physical register. We just need to move all of the users of it. llvm-svn: 301730
* [ELF] When a rel points to a SHF_MERGE section, don't merge the sec.Davide Italiano2017-04-292-7/+16
| | | | | | | Fixes PR32785. Thanks to Piotr Padlewski for the report and Rafael for the fix. llvm-svn: 301729
* [llvm-pdbdump] Abstract some of the YAML/Raw printing code.Zachary Turner2017-04-2922-270/+420
| | | | | | | | | There is a lot of duplicate code for printing line info between YAML and the raw output printer. This introduces a base class that can be shared between the two, and makes some minor cleanups in the process. llvm-svn: 301728
* PR26771: don't forget the " 2" (returning from #included file) linemarker ↵Richard Smith2017-04-293-14/+17
| | | | | | after including an empty file with -frewrite-includes. llvm-svn: 301727
* Remove unused, empty test directories.Richard Smith2017-04-290-0/+0
| | | | llvm-svn: 301726
* Add pragma to perform module import and use it in -E output.Richard Smith2017-04-2918-82/+211
| | | | | | | | | | | | | | | | | | | | | Many of our supported configurations support modules but do not have any first-class syntax to perform a module import. This leaves us with a problem: there is no way to represent the expansion of a #include that imports a module in the -E output for such languages. (We don't want to just leave it as a #include because that requires the consumer of the preprocessed source to have the same file system layout and include paths as the creator.) This patch adds a new pragma: #pragma clang module import MODULE.NAME.HERE that imports a module, and changes -E and -frewrite-includes to use it when rewriting a #include that maps to a module import. We don't make any attempt to use a native language syntax import if one exists, to get more consistent output. (If in the future, @import and #include have different semantics in some way, the pragma will track the #include semantics.) llvm-svn: 301725
* [ObjCARC] Do not move a release between a call and aAkira Hatanaka2017-04-293-16/+58
| | | | | | | | | | | | | | | | | | | retainAutoreleasedReturnValue that retains the returned value. This commit fixes a bug in ARC optimizer where it moves a release between a call and a retainAutoreleasedReturnValue, causing the returned object to be released before the retainAutoreleasedReturnValue can retain it. This commit accomplishes that by doing a lookahead and checking whether the call prevents the release from moving upwards. In the long term, we should treat the region between the retainAutoreleasedReturnValue and the call as a critical section and disallow moving anything there (possibly using operand bundles). rdar://problem/20449878 llvm-svn: 301724
* [LoopUnswitch] Make DEBUG output more readable (part 2).Davide Italiano2017-04-291-1/+1
| | | | | | | | | I fixed my miscompile in r301722 and I hope I don't have to take a look at this code again now that Chandler has a new LoopUnswitch pass, but maybe this could be of use for somebody else in the meanwhile. llvm-svn: 301723
* [LoopUnswitch] Don't remove instructions with side effects.Davide Italiano2017-04-292-1/+21
| | | | | | | | This fixes PR32818. Differential Revision: https://reviews.llvm.org/D32664 llvm-svn: 301722
* ObjCBoxedExpr can't be evaluated by the constant expression evaluator.Nick Lewycky2017-04-294-3/+20
| | | | | | | | A boxed expression evaluates its subexpr and then calls an objc method to transform it into another value with pointer type. The objc method can never be constexpr and therefore this expression can never be evaluated. Fixes a miscompile boxing expressions with side-effects. Also make ObjCBoxedExpr handling a normal part of the expression evaluator instead of being the only case besides full-expression where we check for integer overflow. llvm-svn: 301721
* [llvm-readobj] Fix incorrect printing of CV column info.Zachary Turner2017-04-291-2/+4
| | | | llvm-svn: 301720
* Fuzzer: Mark test/cxxstring.test UNSUPPORTED: windowsDuncan P. N. Exon Smith2017-04-281-0/+2
| | | | | | | | | This has been mysteriously failing since r301593, which cleaned up the types of things like size_t and SIZE_MAX for freestanding targets. Reid and Kostya suggested marking it as UNSUPPORTED on windows, given that no one has been able to reproduce locally. llvm-svn: 301719
* [llvm-readobj] Use LLVMDebugInfoCodeView to parse line tables.Zachary Turner2017-04-282-51/+23
| | | | | | | | The llvm-readobj parsing code currently exists in our CodeView library, so we use that to parse instead of re-writing the logic in the tool. llvm-svn: 301718
* [Support] Provide unsafe random access for VarStreamArray.Zachary Turner2017-04-281-4/+20
| | | | llvm-svn: 301716
* Replace PrettyPrinter class in MapFile.cpp with a few non-member functions.Rui Ueyama2017-04-281-63/+57
| | | | | | | | Since the output format has been simplified, the class to print out a map file doesn't seem to be needed anymore. We can replace it with a few non-member functions. llvm-svn: 301715
* [InstCombine] add tests to show potentially bogus application of DeMorgan (NFC)Sanjay Patel2017-04-281-0/+22
| | | | llvm-svn: 301714
* Remove set but unused variable in BitcodeReader.cpp. NFC.Hans Wennborg2017-04-281-4/+0
| | | | llvm-svn: 301713
* Revert r301697 "[IR] Make add/remove Attributes use AttrBuilder instead of ↵Hans Wennborg2017-04-2812-51/+93
| | | | | | | | | | | | | | | | | | AttributeList" This broke the Clang build. (Clang-side patch missing?) Original commit message: > [IR] Make add/remove Attributes use AttrBuilder instead of > AttributeList > > This change cleans up call sites and avoids creating temporary > AttributeList objects. > > NFC llvm-svn: 301712
* InferAddressSpaces: Search constant expressions for addrspacecastsMatt Arsenault2017-04-283-15/+68
| | | | | | | These are pretty common when using local memory, and the 64-bit generic addressing is much more expensive to compute. llvm-svn: 301711
* Eliminate .debug_gnu_pub{names,types} if -gdb-index is given.Rui Ueyama2017-04-282-0/+19
| | | | | | | | | This patch is to ignore .debug_gnu_pub{names,types} sections if the -gdb-index option was given. Differential Revision: https://reviews.llvm.org/D32662 llvm-svn: 301710
* Revert r301678: Remove LinkerScript::flush.Rui Ueyama2017-04-283-67/+34
| | | | | | | | This reverts commit r301678 since that change significantly slowed down the linker. Before this patch, LLD could link clang in 8 seconds, but with this patch it took 40 seconds. llvm-svn: 301709
* Adapt to LLVM API change (DINamespace no longer takes line/file info).Adrian Prantl2017-04-283-12/+16
| | | | | | | rdar://problem/17484998 https://reviews.llvm.org/D32648 llvm-svn: 301707
* Remove line and file from DINamespace.Adrian Prantl2017-04-2836-130/+102
| | | | | | | | | | | | | | Fixes the issue highlighted in http://lists.llvm.org/pipermail/cfe-dev/2014-June/037500.html. The DW_AT_decl_file and DW_AT_decl_line attributes on namespaces can prevent LLVM from uniquing types that are in the same namespace. They also don't carry any meaningful information. rdar://problem/17484998 Differential Revision: https://reviews.llvm.org/D32648 llvm-svn: 301706
* InferAddressSpaces: Avoid looking up deleted valuesMatt Arsenault2017-04-281-3/+10
| | | | | | | | | | | While looking at pure addressing expressions, it's possible for the value to appear later in Postorder. I haven't been able to come up with a testcase where this exhibits an actual issue, but if you insert a dump before the value map lookup, a few testcases crash. llvm-svn: 301705
* InferAddressSpaces: Infer from just addrspacecastsMatt Arsenault2017-04-283-7/+70
| | | | | | | | Eliminates some more cases where some subset of the addressing computation remains flat. Some cases with addrspacecasts in nested constant expressions are still left behind however. llvm-svn: 301704
* [SCEV] Use early exit in createAddRecFromPHI. NFC.Michael Zolotukhin2017-04-281-109/+110
| | | | llvm-svn: 301703
* LoopRotate: Fix use after scope bugDaniel Berlin2017-04-281-3/+4
| | | | llvm-svn: 301702
* [ODRHash] Add testcase with different paramter names. NFCRichard Trieu2017-04-281-0/+46
| | | | llvm-svn: 301701
* [RDF] Correctly calculate lane masks for defsKrzysztof Parzyszek2017-04-282-2/+59
| | | | llvm-svn: 301700
* Properly handle PHIs with subregisters in UnreachableBlockElimKrzysztof Parzyszek2017-04-282-8/+46
| | | | | | | | | When a PHI operand has a subregister, create a COPY instead of simply replacing the PHI output with the input it. Differential Revision: https://reviews.llvm.org/D32650 llvm-svn: 301699
* [Hexagon] Do not move a block if it is on a fall-through pathKrzysztof Parzyszek2017-04-282-3/+81
| | | | llvm-svn: 301698
* [IR] Make add/remove Attributes use AttrBuilder instead of AttributeListReid Kleckner2017-04-2812-93/+51
| | | | | | | | | This change cleans up call sites and avoids creating temporary AttributeList objects. NFC llvm-svn: 301697
* [ConstantRange] Use APInt::isNullValue rather than APInt::isMinValue where ↵Craig Topper2017-04-281-2/+2
| | | | | | it would make more sense to thing of 0 as 0 rather than the minimum unsigned value. NFC llvm-svn: 301696
* [APInt] Add an isNullValue method to check for all bits being zero. Use it ↵Craig Topper2017-04-281-3/+8
| | | | | | | | | | in a couple internal methods where it makes more sense than isMinValue or !getBoolValue. NFC I used Null rather than Zero to match the getNullValue method name. There are some other places outside APInt where isNullValue would be more readable than isMinValue even though they do the same thing. I'll update those in future patches. llvm-svn: 301695
* [ConstantRange] Use const references to prevent a couple APInt copies. NFCCraig Topper2017-04-281-2/+2
| | | | llvm-svn: 301694
* Flush output in log()Hans Wennborg2017-04-282-0/+2
| | | | | | | | This change was motivated by output from lld-link.exe and link.exe getting intermixed. There's already a flush() call in message(), so there's precedence. llvm-svn: 301693
* [LoopUnswitch] Make DEBUG output more readable.Davide Italiano2017-04-281-1/+1
| | | | | | | | | While debugging a miscompile I realized loopunswitch doesn't put newlines when printing the instruction being replacement. Ending up with a single line with many instruction replaced isn't the best for readability and/or mental sanity. llvm-svn: 301692
* Rename one of the variables to avoid confusion.Rafael Espindola2017-04-281-2/+2
| | | | llvm-svn: 301691
OpenPOWER on IntegriCloud