summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [LLD][ELF] - Add test case.George Rimar2018-08-161-0/+22
| | | | | | | To cover the following error message: https://github.com/llvm-mirror/lld/blob/master/ELF/InputFiles.cpp#L463 llvm-svn: 339867
* Attempt to fix clangd tests on older compilersSimon Pilgrim2018-08-161-12/+16
| | | | | | | | Old gcc versions of gcc struggle with raw string literals inside macros. Inspired by rL339759 llvm-svn: 339866
* [libcxxabi] Fix test_exception_address_alignment test for ARMYvan Roux2018-08-161-1/+2
| | | | | | | | | | Check _LIBCXXABI_ARM_EHABI macro instead of libunwind version. Fixes PR34182 Differential revision: https://reviews.llvm.org/D50170 llvm-svn: 339865
* [RISCV][MC] Don't fold symbol differences if ↵Alex Bradbury2018-08-163-5/+56
| | | | | | | | | | | | | | | | | | | | | | requiresDiffExpressionRelocations is true When emitting the difference between two symbols, the standard behavior is that the difference will be resolved to an absolute value if both of the symbols are offsets from the same data fragment. This is undesirable on architectures such as RISC-V where relaxation in the linker may cause the computed difference to become invalid. This caused an issue when compiling to object code, where the size of a function in the debug information was already calculated even though it could change as a consequence of relaxation in the subsequent linking stage. This patch inhibits the resolution of symbol differences to absolute values where the target's AsmBackend has declared that it does not want these to be folded. Differential Revision: https://reviews.llvm.org/D45773 Patch by Edward Jones. llvm-svn: 339864
* [ADT] Replace APInt::WORD_MAX with APInt::WORDTYPE_MAXSimon Pilgrim2018-08-162-18/+18
| | | | | | | | | | | | The windows SDK defines WORD_MAX, so any poor soul that wants to use LLVM in a project that depends on the windows SDK gets a build error. Given that it actually describes the maximal value of WordType, it actually fits even better than WORD_MAX Patch by: @miscco Differential Revision: https://reviews.llvm.org/D50777 llvm-svn: 339863
* [AST] Store the OwnedTagDecl as a trailing object in ElaboratedType.Bruno Ricci2018-08-162-20/+44
| | | | | | | | | | | | | | The TagDecl *OwnedTagDecl in ElaboratedType is quite commonly null (at least when parsing all of Boost, it is non-null for only about 600 of the 66k ElaboratedType). Therefore we can save a pointer in the common case by storing it as a trailing object, and storing a bit in the bit-fields of Type indicating when the pointer is null. Reviewed By: rjmccall Differential Revision: https://reviews.llvm.org/D50715 llvm-svn: 339862
* [AST] Pack the unsigned of SubstTemplateTypeParmPackType into TypeBruno Ricci2018-08-162-6/+27
| | | | | | | | | | | The bit-fields of Type have enough space for the member unsigned NumArgs of SubstTemplateTypeParmPackType. Reviewed By: erichkeane Differential Revision: https://reviews.llvm.org/D50713 llvm-svn: 339861
* [AST] Pack the unsigned of DependentTemplateSpecializationType into TypeBruno Ricci2018-08-162-8/+30
| | | | | | | | | | | The bit-fields of `Type` have enough space for the member `unsigned NumArgs` of `DependentTemplateSpecializationType`. Reviewed By: erichkeane Differential Revision: https://reviews.llvm.org/D50712 llvm-svn: 339860
* [ARM] Allow signed icmps in ARMCodeGenPrepareSam Parker2018-08-163-31/+145
| | | | | | | | | | | | | | | | | Originally committed in r339755 which was reverted in r339806 due to an asan issue. The issue was caused by my assumption that operands to a CallInst mapped to the FunctionType Params. CallInsts are now handled by iterating over their ArgOperands instead of Operands. Original Message: Treat signed icmps as 'sinks', allowing them to be in the use-def tree, enabling more promotions to be performed. As a sink, any promoted incoming values need to be truncated before being used by the signed icmp. Differential Revision: https://reviews.llvm.org/D50067 llvm-svn: 339858
* [libunwind][mips] Guard accumulator registersStefan Maksimovic2018-08-161-0/+4
| | | | | | | | Mipsr6 does not possess HI and LO accumulator registers, adjust validRegister functions to respect that. Differential Revision: https://reviews.llvm.org/D50244 llvm-svn: 339849
* [libunwind][mips] Modify the __mips_fpr macro checkStefan Maksimovic2018-08-162-2/+2
| | | | | | | | The __mips_fpr macro can take the value of 0 as well, change to account for that case. Differential Revision: https://reviews.llvm.org/D50245 llvm-svn: 339848
* [mips] Remove dead code from MipsPassConfigSimon Atanasyan2018-08-161-4/+0
| | | | | | | | | | Found by GCC's -Wunused-function. Patch by Kim Gräsman. Differential revision: https://reviews.llvm.org/D50612 llvm-svn: 339847
* [NFC] Remove const modifier to allow further development in LICMMax Kazantsev2018-08-161-3/+2
| | | | llvm-svn: 339846
* [X86] Remove masking from the 512-bit paddus/psubus builtins. Use a select ↵Craig Topper2018-08-163-70/+40
| | | | | | builtin instead. llvm-svn: 339845
* [NFC] Add missing const modifierMax Kazantsev2018-08-161-1/+1
| | | | llvm-svn: 339844
* [X86] Remove masking from the 512-bit padds and psubs builtins. Use select ↵Craig Topper2018-08-163-72/+56
| | | | | | builtin instead. llvm-svn: 339843
* [X86] Remove masking from the 512-bit padds and psubs intrinsics. Use select ↵Craig Topper2018-08-166-107/+485
| | | | | | in IR instead. llvm-svn: 339842
* [X86] Remove the unused masked 128 and 256-bit masked padds/psubs intrinsics.Craig Topper2018-08-165-313/+989
| | | | | | Still need to remove masking from the 512-bit versions. llvm-svn: 339841
* [X86] Correct some bad FileCheck prefixes in tests. Add test cases for v64i8 ↵Craig Topper2018-08-162-138/+540
| | | | | | | | padd/psub saturation intrinsics. For some reason we had the 128/256-bit tests, but no the 512-bit tests. llvm-svn: 339840
* [ASTImporter] Add test for CXXDefaultInitExprRaphael Isemann2018-08-162-0/+31
| | | | | | | | | | | | Reviewers: a.sidorin, a_sidorin Reviewed By: a_sidorin Subscribers: a_sidorin, martong, cfe-commits Differential Revision: https://reviews.llvm.org/D50732 llvm-svn: 339839
* [ASTImporter] Add test for CXXScalarValueInitRaphael Isemann2018-08-162-0/+13
| | | | | | | | | | | | Reviewers: a.sidorin, a_sidorin Reviewed By: a_sidorin Subscribers: martong, cfe-commits Differential Revision: https://reviews.llvm.org/D50735 llvm-svn: 339838
* [ASTImporter] Add test for ForStmt and ContinueStmtRaphael Isemann2018-08-162-0/+47
| | | | | | | | | | | | Reviewers: a.sidorin, a_sidorin Reviewed By: a_sidorin Subscribers: martong, cfe-commits Differential Revision: https://reviews.llvm.org/D50812 llvm-svn: 339837
* [x86] Actually initialize the SLH pass with the x86 backend and useChandler Carruth2018-08-163-4/+6
| | | | | | | | | | | | | | | a shorter name ('x86-slh') for the internal flags and pass name. Without this, you can't use the -stop-after or -stop-before infrastructure. I seem to have just missed this when originally adding the pass. The shorter name solves two problems. First, the flag names were ... really long and hard to type/manage. Second, the pass name can't be the exact same as the flag name used to enable this, and there are already some users of that flag name so I'm avoiding changing it unnecessarily. llvm-svn: 339836
* [BFI] Use rounding while computing profile counts.Easwaran Raman2018-08-164-14/+18
| | | | | | | | | | | | | | | Summary: Profile count of a block is computed by multiplying its block frequency by entry count and dividing the result by entry block frequency. Do rounded division in the last step and update test cases appropriately. Reviewers: davidxl Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D50822 llvm-svn: 339835
* [Driver] -print-target-triple and -print-effective-triple optionsPetr Hosek2018-08-164-0/+28
| | | | | | | | These can be used to print Clang target and effective triple. Differential Revision: https://reviews.llvm.org/D50755 llvm-svn: 339834
* Fix a little thinko in generating ___lldb_unnamed_symbol symbols Jim Ingham2018-08-154-1/+114
| | | | | | | | | | | when we have only an in-memory copy of the binary. Also added a test for the generation of these symbols in the in-memory and regular cases. <rdar://problem/43160401> llvm-svn: 339833
* Implementation of nested loops in cxx_loop_protoEmmett Neyman2018-08-153-35/+116
| | | | | | | | | | | | | | Summary: Extended `cxx_loop_proto` to have neste for loops. Modified `loop_proto_to_llvm` and `loop_proto_to_cxx` to handle the new protos. All protos have a set of statements designated as "inner loop" statements and a set of statements designated as "outer loop" statements. Reviewers: morehouse, kcc Reviewed By: morehouse Subscribers: cfe-commits, llvm-commits Differential Revision: https://reviews.llvm.org/D50670 llvm-svn: 339832
* [ASTImporter] Add test for ArrayInitLoopExprRaphael Isemann2018-08-152-0/+14
| | | | | | | | | | | | Reviewers: a.sidorin, a_sidorin Reviewed By: a_sidorin Subscribers: martong, cfe-commits Differential Revision: https://reviews.llvm.org/D50733 llvm-svn: 339831
* [ASTImporter] Add test for ExprWithCleanupsRaphael Isemann2018-08-152-0/+16
| | | | | | | | | | | | Reviewers: a.sidorin, a_sidorin Reviewed By: a_sidorin Subscribers: a_sidorin, martong, cfe-commits Differential Revision: https://reviews.llvm.org/D50731 llvm-svn: 339830
* [Darwin Driver] Fix Simulator builtins and test casesChris Bieneman2018-08-1511-57/+37
| | | | | | | | In r339807, I broke linking the builtins libraries for simulator targets, which itself was bad, but turns out it was all completely untested and marked with FIXME in the test suite. This fixes all the test cases so they actually work, and fixes the bug I introduced in r339807. llvm-svn: 339829
* Add libc++ data formatters for std::optional.Adrian Prantl2018-08-159-7/+260
| | | | | | | | | | Patch by Shafik Yaghmour! This reapplies an earlier version after addressing some post-commit feedback. Differential Revision: https://reviews.llvm.org/D49271 llvm-svn: 339828
* [ASTImporter] Add test for IfStmtRaphael Isemann2018-08-152-0/+68
| | | | | | | | | | | | Reviewers: a.sidorin, hiraditya Reviewed By: hiraditya Subscribers: hiraditya, martong, cfe-commits Differential Revision: https://reviews.llvm.org/D50796 llvm-svn: 339827
* Revert "[ASTImporter] Add test for IfStmt"Raphael Isemann2018-08-152-68/+0
| | | | | | That's actually a clang patch, sorry. llvm-svn: 339826
* [ASTImporter] Add test for IfStmtRaphael Isemann2018-08-152-0/+68
| | | | | | | | | | | | Reviewers: a.sidorin, hiraditya Reviewed By: hiraditya Subscribers: hiraditya, martong, cfe-commits Differential Revision: https://reviews.llvm.org/D50796 llvm-svn: 339825
* [Metadata] Replace a SmallVector with an array; NFCGeorge Burgess IV2018-08-151-3/+4
| | | | | | MDNode::get takes an ArrayRef, so these should be equivalent. llvm-svn: 339824
* [llvm-mca] Minor style changes. NFCAndrea Di Biagio2018-08-154-27/+28
| | | | llvm-svn: 339823
* [CodeGenPrepare] Add BothExtension type to PromotedInstsGuozhi Wei2018-08-152-7/+74
| | | | | | | | | | | | This patch fixes PR38125. Instruction extension types are recorded in PromotedInsts, it can be used later in function canGetThrough. If an instruction has two users with different extension types, it will be inserted into PromotedInsts two times in function promoteOperandForOther. The second one overwrites the first one, and the final extension type is wrong, later causes problem in canGetThrough. This patch changes the simple bool extension type to 2-bit enum type, add a BothExtension type in addition to zero/sign extension. When an user sees BothExtension for an instruction, it actually knows nothing about how that instruction is extended. Differential Revision: https://reviews.llvm.org/D49512 llvm-svn: 339822
* AMDGPU: Fold fneg into fmed3Matt Arsenault2018-08-152-4/+93
| | | | llvm-svn: 339821
* AMDGPU: Improve extract_vector_elt reduction combineMatt Arsenault2018-08-153-34/+137
| | | | | | | | | | | Handle fmul, fsub and preserve flags. Also really test minnum/maxnum reductions. The existing tests were only checking from minnum/maxnum matched from a fast math compare and select which is not the same. llvm-svn: 339820
* AMDGPU: Implement llvm.amdgcn.icmp/fcmp for i16/f16Matt Arsenault2018-08-154-42/+427
| | | | | | | Also support these on targets without support for these, since it will allow us to freely create these in instcombine. llvm-svn: 339819
* [X86] Improve AVX1 shuffle lowering for v8f32 shuffles where the low half ↵Craig Topper2018-08-159-534/+460
| | | | | | | | | | | | comes from V1 and the high half comes from V2 and the halves do the same operation To lower this we now create a new V1 containing the low half of both sources and a new V2 containing the upper half of both sources. Then we created a repeated lane shuffle of those new sources to create the final result. This fixes PR35833 Differential Revison: https://reviews.llvm.org/D41794 llvm-svn: 339818
* Fix doc string variable name to quiet a compiler warning.Greg Clayton2018-08-151-1/+1
| | | | llvm-svn: 339817
* Selectively import timespec_get into namespace std, since some C libraries ↵Marshall Clow2018-08-156-5/+15
| | | | | | don't have it. Reviewed as https://reviews.llvm.org/D50799 llvm-svn: 339816
* AMDGPU: Stop producing icmp/fcmp intrinsics with invalid typesMatt Arsenault2018-08-152-0/+176
| | | | llvm-svn: 339815
* AMDGPU: Address todo for handling 1/(2 pi)Matt Arsenault2018-08-156-164/+384
| | | | llvm-svn: 339814
* DAG: Use getObjectOffset helperMatt Arsenault2018-08-151-4/+1
| | | | llvm-svn: 339813
* [TableGen] Remove unnecessary TypeSetByHwMode -> ValueTypeByHwMode -> ↵Simon Pilgrim2018-08-151-1/+1
| | | | | | | | | | | | | | TypeSetByHwMode conversions in getPatternSize I noticed this during profiling of tablegen (PR28222) that we were calling Child->getType(0) which creates a ValueTypeByHwMode on the fly from the requested internal TypeSetByHwMode type and returns it by value, we then treat it as a TypeSetByHwMode reference which involves constructing a new TypeSetByHwMode on the stack with a large amount of std::map iterating/copying all along the way. I am not an expert on tablegen, but AFAICT this is all unnecessary and we should be calling Child->getExtType(0) which returns the original TypeSetByHwMode by reference. This gives me a 90sec reduction in msvc debug builds of x86 -gen-dag-isel. Differential Revision: https://reviews.llvm.org/D50789 llvm-svn: 339812
* DAG: Try to custom lower when promoting float operandsMatt Arsenault2018-08-151-0/+5
| | | | | | | For some reason this wasn't done for floats like integers. llvm-svn: 339811
* Add a newline to SourceLocation dump outputStephen Kelly2018-08-156-7/+8
| | | | | | | | | | | | | | Summary: Migrate callers to print(). dump() should be useful to downstreams and third parties as a debugging aid. Everyone trips up on this and creates confusing output. Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D50661 llvm-svn: 339810
* [MCJIT] Fix a case of Error::success() being passed to report_fatal_error.Lang Hames2018-08-151-1/+2
| | | | | | | | | | MCJIT::getSymbolAddress was handling a non-fatal error condition of JITSymbol as fatal. JITSymbol::operator bool returns false if no address is available but no error is set. This can occur e.g. if the symbol name was not found. Patch by Jascha Wetzel. Thanks Jascha! llvm-svn: 339809
OpenPOWER on IntegriCloud