summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [Sema] Fix build with GCCBenjamin Kramer2018-01-011-1/+1
| | | | | | | | | | tools/clang/lib/Sema/DeclSpec.cpp: In member function 'void clang::DeclSpec::Finish(clang::Sema&, const clang::PrintingPolicy&)': tools/clang/lib/Sema/DeclSpec.cpp:1116:8: error: could not convert 'clang::DeclSpec::TSW_unspecified' from 'const TSW {aka const clang::TypeSpecifierWidth}' to 'int' tools/clang/lib/Sema/DeclSpec.cpp:1117:8: error: could not convert 'clang::DeclSpec::TSW_short' from 'const TSW {aka const clang::TypeSpecifierWidth}' to 'int' tools/clang/lib/Sema/DeclSpec.cpp:1118:8: error: could not convert 'clang::DeclSpec::TSW_longlong' from 'const TSW {aka const clang::TypeSpecifierWidth}' to 'int' tools/clang/lib/Sema/DeclSpec.cpp:1128:8: error: could not convert 'clang::DeclSpec::TSW_long' from 'const TSW {aka const clang::TypeSpecifierWidth}' to 'int' llvm-svn: 321626
* Use 'unsigned int' instead of enum bit-fields to silence some warnings from ↵Faisal Vali2018-01-013-35/+50
| | | | | | | | | | | | | r321622 - bots were complaining that the bit-field width was less than the width of the underlying type (note, underlying types of enums can not be bit-fields) - add static_asserts for TSS and TSW to ensure that the bit-fields can hold all the enumerators - and add comments next to the last enumerator warning not to reorder. See https://reviews.llvm.org/rC321622 for the patch that introduced the warnings. llvm-svn: 321625
* [x86] add runs for more vector variants; NFCSanjay Patel2018-01-011-220/+179
| | | | | | Preliminary step to see what the effects of D41618 look like. llvm-svn: 321624
* Fixed markup formattingSerge Pavlov2018-01-011-1/+1
| | | | llvm-svn: 321623
* [NFC] Modernize enums TypeSpecifierWidth, TypeSpecifierSign & ↵Faisal Vali2018-01-0122-231/+254
| | | | | | | | | | | | TypeSpecifierType into scoped enums with underlying types. - Since these enums are used as bit-fields - for the bit-fields to be interpreted as unsigned, the underlying type must be specified as unsigned. Previous failed attempt - wherein I did not specify an underlying type - was the sum of: https://reviews.llvm.org/rC321614 https://reviews.llvm.org/rC321615 llvm-svn: 321622
* Enable configuration files in clangSerge Pavlov2018-01-0125-12/+691
| | | | | | | | | | | | | | | | | | | | | Clang is inherently a cross compiler and can generate code for any target enabled during build. It however requires to specify many parameters in the invocation, which could be hardcoded during configuration process in the case of single-target compiler. The purpose of configuration files is to make specifying clang arguments easier. A configuration file is a collection of driver options, which are inserted into command line before other options specified in the clang invocation. It groups related options together and allows specifying them in simpler, more flexible and less error prone way than just listing the options somewhere in build scripts. Configuration file may be thought as a "macro" that names an option set and is expanded when the driver is called. Use of configuration files is described in `UserManual.rst`. Differential Revision: https://reviews.llvm.org/D24933 llvm-svn: 321621
* [X86][SSE] Add test case from PR32160Simon Pilgrim2018-01-011-0/+77
| | | | llvm-svn: 321620
* [X86] Regenerate test checks in sse-intrinsics-x86-upgrade with update-llcUriel Korach2018-01-011-68/+0
| | | | | | | Removing outdated checks. NFC llvm-svn: 321619
* [X86] Regenerate test checks in sse2-intrinsics-x86-upgrade with update-llcUriel Korach2018-01-011-56/+0
| | | | | | | Removing outdated checks. NFC llvm-svn: 321618
* [X86] In LowerTruncateVecI1, don't add SHL if the input is known to be all ↵Craig Topper2018-01-0114-555/+25
| | | | | | | | sign bits. If the input is all sign bits then the LSB through MSB are all the same so we don't need to be move the LSB to the MSB. llvm-svn: 321617
* Revert r321614 and r321615Faisal Vali2018-01-0122-252/+230
| | | | | | | | - the enum changes to TypeSpecifierType are breaking some tests - and will require a more careful integration. Sorry about rushing these changes - thought I could sneak them in prior to heading out for new years ;) llvm-svn: 321616
* Add scope specifiers to updated scoped-enums (that I somehow missed in r321614)Faisal Vali2018-01-012-10/+10
| | | | llvm-svn: 321615
* [NFC] Modernize enums TypeSpecifierWidth, TypeSpecifierSign & ↵Faisal Vali2018-01-0120-220/+242
| | | | | | | | TypeSpecifierType into scoped enums. llvm-svn: 321614
* [X86] Add missing NoVLX predicate around some patterns that use zmm ↵Craig Topper2018-01-011-1/+1
| | | | | | registers to implement 128/256-bit operations without VLX. llvm-svn: 321613
* [X86] Add patterns for using zmm registers for v8i32/v8f32 vselect with the ↵Craig Topper2018-01-012-34/+34
| | | | | | | | false input being zero. We can use zmm move with zero masking for this. We already had patterns for using a masked move, but we didn't check for the zero masking case separately. llvm-svn: 321612
* [X86] Use CONCAT_VECTORS instead of INSERT_SUBVECTOR for padding v4i1/v2i1 ↵Craig Topper2017-12-312-93/+34
| | | | | | | | | | vector to v8i1 pre-legalize. The CONCAT_VECTORS will be lowered to INSERT_SUBVECTOR later. In the modified cases this seems to be enough to trick a later DAG combine into running in a different order than allows the ANDs to be removed. I'll admit this is a bit of a hack that happens to work, but using CONCAT_VECTORS is more consistent with other legalization code anyway. llvm-svn: 321611
* [X86][AVX2] Combine extract(broadcast(scalar_value)) --> scalar_valueSimon Pilgrim2017-12-313-43/+24
| | | | | | As it has a scalar source we don't treat it as a target shuffle so needs special handling. llvm-svn: 321610
* [Sema] Improve diagnostics for const- and ref-qualified member functionsJacob Bandes-Storch2017-12-317-20/+77
| | | | | | | | | | | | | | | | | | | | | | | | (Re-submission of D39937 with fixed tests.) Adjust wording for const-qualification mismatch to be a little more clear. Also add another diagnostic for a ref qualifier mismatch, which previously produced a useless error (this error path is simply very old; see rL119336): Before: error: cannot initialize object parameter of type 'X0' with an expression of type 'X0' After: error: 'this' argument to member function 'rvalue' is an lvalue, but function has rvalue ref-qualifier Reviewers: aaron.ballman Reviewed By: aaron.ballman Subscribers: lebedev.ri, cfe-commits Differential Revision: https://reviews.llvm.org/D41646 llvm-svn: 321609
* [X86][AVX] Add test case from PR33740Simon Pilgrim2017-12-311-0/+28
| | | | llvm-svn: 321608
* [X86][SSE] Don't vectorize splat buildvector of binops (PR30780)Simon Pilgrim2017-12-314-46/+26
| | | | | | Don't combine buildvector(binop(),binop(),binop(),binop()) -> binop(buildvector(), buildvector()) if its a splat - keep the binop scalar and just splat the result to avoid large vector constants. llvm-svn: 321607
* [SimplifyCFG] Return to the pass manager the correct value.Davide Italiano2017-12-311-1/+1
| | | | | | | I wanted to commit this with r321603, but I failed to squash the two commits. llvm-svn: 321606
* [Utils/Local] Use `auto` when the type is obvious. NFCI.Davide Italiano2017-12-311-6/+6
| | | | llvm-svn: 321605
* [Utils] Remove commented debug message. NFCI.Davide Italiano2017-12-311-4/+0
| | | | llvm-svn: 321604
* [SimplifyCFG] Stop hoisting musttail calls incorrectly.Davide Italiano2017-12-312-0/+46
| | | | | | PR35774. llvm-svn: 321603
* [X86] Add a DAG combine to widen (i4 (bitcast (v4i1))) before type ↵Craig Topper2017-12-316-148/+146
| | | | | | | | legalization sees the i4 and changes to load/store. Same for v2i1 and i2. llvm-svn: 321602
* [X86] Add a DAG combine to fix (v4i1 (bitcast (i4))) before type ↵Craig Topper2017-12-315-385/+83
| | | | | | | | legalization sees the i4 and changes to load/store. Same for i2 and v2i1. llvm-svn: 321601
* [ELF] - Add missing dynamic tags when producing output with IRelative ↵George Rimar2017-12-312-1/+48
| | | | | | | | | | | | | | | | | | | relocations only. This is "Bug 35751 - .dynamic relocation entries omitted if output contains only IFUNC relocations" We have InX::RelaPlt and InX::RelaIPlt synthetic sections for PLT relocations. They are usually live in rela.plt section. Problem appears when InX::RelaPlt section is empty. In that case we did not produce normal set of dynamic tags required, because logic was written in the way assuming we always have non-IRelative relocations in rela.plt. Patch fixes the issue. Differential revision: https://reviews.llvm.org/D41592 llvm-svn: 321600
* [MC] - Stop ignoring invalid meta data symbols.George Rimar2017-12-312-1/+11
| | | | | | | | | | | Previously llvm-mc would silently accept code from testcase, that contains invalid metadata symbol in section declaration. Patch fixes the issue. Differential revision: https://reviews.llvm.org/D41641 llvm-svn: 321599
* [X86] Prevent combining (v8i1 (bitconvert (i8 load)))->(v8i1 load) if we ↵Craig Topper2017-12-317-204/+116
| | | | | | | | don't have DQI. We end up using an i8 load via an isel pattern from v8i1 anyway. This just makes it more explicit. This seems to improve codgen in some cases and I'd like to kill off some of the load patterns. llvm-svn: 321598
* [X86] Remove patterns for load/store of vXi with bitcasts to/from integer.Craig Topper2017-12-311-19/+0
| | | | | | This is better handled by a DAG combine if its not already being done. No lit tests fail from the removal of these patterns. llvm-svn: 321597
* [X86] Remove AND32ri8 from pattern for v1i1 load.Craig Topper2017-12-312-8/+13
| | | | | | I don't think anything would actually expect the other bits to be zero. llvm-svn: 321596
* [X86] Fix a crash when returning a <1 x i1> value>Craig Topper2017-12-312-0/+23
| | | | llvm-svn: 321595
* [X86] Cleanup store splitting in LowerTruncatingStoreCraig Topper2017-12-311-4/+5
| | | | | | Use getMemBasePlusOffset and calculate proper pointer info and alignment for the second store. llvm-svn: 321594
* Reverted 321592: [Sema] Improve diagnostics for const- and ref-qualified ↵Jacob Bandes-Storch2017-12-314-69/+12
| | | | | | | | member functions A few tests need to be fixed llvm-svn: 321593
* [Sema] Improve diagnostics for const- and ref-qualified member functionsJacob Bandes-Storch2017-12-314-12/+69
| | | | | | | | | | | | | | | | | | | | | | | Summary: Adjust wording for const-qualification mismatch to be a little more clear. Also add another diagnostic for a ref qualifier mismatch, which previously produced a useless error (this error path is simply very old; see rL119336): Before: error: cannot initialize object parameter of type 'X0' with an expression of type 'X0' After: error: 'this' argument to member function 'rvalue' is an lvalue, but function has rvalue ref-qualifier Reviewers: rsmith, aaron.ballman Reviewed By: aaron.ballman Subscribers: lebedev.ri, aaron.ballman, cfe-commits Differential Revision: https://reviews.llvm.org/D39937 llvm-svn: 321592
* 2nd attempt at "fixing" amdgpu tests after r321575​Philip Reames2017-12-311-26/+0
| | | | | | The test needs to be changed; it was exercising UB and that likely wasn't the intent of the test author. I simply removed the checks because I have absolutely no idea what this test was trying to accomplish. With multiple check patterns, no explanation, and no familiarity on my part with the ISA a true fix is going to have to come from someone familiar with the target. llvm-svn: 321591
* [NFC] Modernize enum DeclSpecContext into a scoped enum.Faisal Vali2017-12-317-93/+105
| | | | llvm-svn: 321590
* Test fix after r321575Philip Reames2017-12-301-3/+2
| | | | | | | | The test in question was checking for a particular intepretation of undefined behavior. Relax the test to check that we simply don't crash. Sorry for the breakage, I don't generally build AMDGPU locally and just saw the failure this morning. llvm-svn: 321589
* Reverted 321587: Enable configuration files in clangSerge Pavlov2017-12-3025-686/+12
| | | | | | Need to check targets in tests more carefully. llvm-svn: 321588
* Enable configuration files in clangSerge Pavlov2017-12-3025-12/+686
| | | | | | | | | | | | | | | | | | | | | Clang is inherently a cross compiler and can generate code for any target enabled during build. It however requires to specify many parameters in the invocation, which could be hardcoded during configuration process in the case of single-target compiler. The purpose of configuration files is to make specifying clang arguments easier. A configuration file is a collection of driver options, which are inserted into command line before other options specified in the clang invocation. It groups related options together and allows specifying them in simpler, more flexible and less error prone way than just listing the options somewhere in build scripts. Configuration file may be thought as a "macro" that names an option set and is expanded when the driver is called. Use of configuration files is described in `UserManual.rst`. Differential Revision: https://reviews.llvm.org/D24933 llvm-svn: 321587
* Added support for reading configuration filesSerge Pavlov2017-12-303-0/+208
| | | | | | | | | | | | | Configuration file is read as a response file in which file names in the nested constructs `@file` are resolved relative to the directory where the including file resides. Lines in which the first non-whitespace character is '#' are considered as comments and are skipped. Trailing backslashes are used to concatenate lines in the same way as they are used in shell scripts. Differential Revision: https://reviews.llvm.org/D24926 llvm-svn: 321586
* Use phi ranges to simplify code. No functionality change intended.Benjamin Kramer2017-12-3031-476/+289
| | | | llvm-svn: 321585
* [X86][SSE] Add PR30780 test casesSimon Pilgrim2017-12-302-0/+177
| | | | | | Broadcast of sign/zero extended scalars resulting in unnecessary vector constants llvm-svn: 321584
* [X86][SSE] Add test for (v2f32 uitofp(build_vector(i32, i32))) (PR35732)Simon Pilgrim2017-12-301-3/+34
| | | | | | To compare against (v2f32 build_vector(f32 uitofp(i32), f32 uitofp(i32))) llvm-svn: 321583
* Reverted 321580: Added support for reading configuration filesSerge Pavlov2017-12-303-207/+0
| | | | | | It caused buildbot fails. llvm-svn: 321582
* [ELF] - Remove excessive checks. NFC.George Rimar2017-12-301-2/+2
| | | | | | | | | | This was raised in comments for D41592. With current code we always assign parent section for Rel[a] sections like InX::RelaPlt or InX::RelaDyn, so checking their parent for null is excessive. llvm-svn: 321581
* Added support for reading configuration filesSerge Pavlov2017-12-303-0/+207
| | | | | | | | | | | | | Configuration file is read as a response file in which file names in the nested constructs `@file` are resolved relative to the directory where the including file resides. Lines in which the first non-whitespace character is '#' are considered as comments and are skipped. Trailing backslashes are used to concatenate lines in the same way as they are used in shell scripts. Differential Revision: https://reviews.llvm.org/D24926 llvm-svn: 321580
* [PowerPC] fix a bug in TCO eligibility checkHiroshi Inoue2017-12-303-9/+41
| | | | | | | | | | If the callee and caller use different calling convensions, we cannot apply TCO if the callee requires arguments on stack; e.g. C calling convention and Fast CC use the same registers for parameter passing, but the stack offset is not necessarily same. This patch also recommit r319218 "[PowerPC] Allow tail calls of fastcc functions from C CallingConv functions." by @sfertile since the problem reported in r320106 should be fixed. Differential Revision: https://reviews.llvm.org/D40893 llvm-svn: 321579
* [ELF] Only scan executables for shlib undefined symbolsShoaib Meenai2017-12-303-1/+21
| | | | | | | | | | | | | | | | | | | | If using a version script with a `local: *` in it, symbols in shared libraries will still get default visibility if another shared library on the link line has an undefined reference to the symbol. This is quite surprising. Neither bfd nor gold have this behavior when linking a shared library, and none of LLD's tests fail without this behavior, so it seems safe to limit scanShlibUndefined to executables. As far as executables are concerned, gold doesn't do any automatic default visibility marking, and bfd issues a link error about a shared library having a reference to a hidden symbol rather than silently giving that symbol default visibility. I think bfd's behavior here is preferable to LLD's, but that's something to be considered in a follow-up. Differential Revision: https://reviews.llvm.org/D41524 llvm-svn: 321578
* [X86] Remove isel patterns for kshifts with types that don't support kshift ↵Craig Topper2017-12-301-17/+0
| | | | | | | | natively. We should only be creating natively supported kshifts now. llvm-svn: 321577
OpenPOWER on IntegriCloud