summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [ELF] - Merged 2 lines. NFC.George Rimar2016-07-261-4/+1
| | | | llvm-svn: 276768
* AMDGPU: Make AMDGPUMachineFunction fields privateMatt Arsenault2016-07-2610-56/+80
| | | | | | | | | ABIArgOffset is a problem because properly fsetting the KernArgSize requires that the reserved area before the real kernel arguments be correctly aligned, which requires fixing clover. llvm-svn: 276766
* AMDGPU: Add missing tests for xnack option for HSAMatt Arsenault2016-07-261-5/+21
| | | | llvm-svn: 276765
* AMDGPU: Add fp legacy instruction intrinsicsMatt Arsenault2016-07-268-2/+125
| | | | | | | This could use some additional optimization work to use mad/mac legacy. llvm-svn: 276764
* GlobalISel: add specialized buildCopy function to MachineInstrBuilder.Tim Northover2016-07-264-3/+16
| | | | | | NFC. llvm-svn: 276763
* GlobalISel: give MachineInstrBuilder a uniform interface. NFC.Tim Northover2016-07-263-88/+62
| | | | | | | | | | | Instead of an ad-hoc collection of "buildInstr" functions with varying numbers of registers, this uses variadic templates to provide for as many regs as needed! Also make IRtranslator use new "buildBr" function instead of some weird generic one that no-one else would really use. llvm-svn: 276762
* [include-fixer] Don't add qualifiers in missing complete type cases.Haojian Wu2016-07-262-3/+11
| | | | | | | | | | | | Summary: In missing complete type cases, we don't know where to add the qualifiers. Reviewers: bkramer Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D22812 llvm-svn: 276761
* reduce Green Dragon macOS build session filename lengthTodd Fiala2016-07-261-1/+1
| | | | | | | | | | | The Green Dragon builder for macOS started failing yesterday with session filenames that were too long. This change modifies the Xcode target that runs the test suite and specifies a shorter session filename format. rdar://27539818 llvm-svn: 276760
* Revert "Make RecursiveASTVisitor visit lambda capture initialization ↵Martin Bohme2016-07-262-11/+0
| | | | | | | | | | expressions" This reverts commit r276755. (Broke clang-tidy check modernize-loop-convert.) llvm-svn: 276759
* Update for LLVM changesDavid Majnemer2016-07-261-5504/+3125
| | | | | | | InstSimplify has gained the ability to remove needless bitcasts which perturbed some clang codegen tests. llvm-svn: 276756
* Make RecursiveASTVisitor visit lambda capture initialization expressionsMartin Bohme2016-07-262-0/+11
| | | | | | | | | | | | | | | Summary: Lambda capture initializations are part of the explicit source code and therefore should be visited by default but, so far, RecursiveASTVisitor does not visit them. This appears to be an oversight. Because the lambda body needs custom handling (calling TraverseLambdaBody()), the DEF_TRAVERSE_STMT for LambdaExpr sets ShouldVisitChildren to false but then neglects to visit the lambda capture initializations. This patch adds code to visit the expressions associated with lambda capture initializations. Reviewers: klimek Subscribers: klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D22566 llvm-svn: 276755
* [Tooling] skip anonymous namespaces when checking if typeLoc references a ↵Eric Liu2016-07-262-16/+37
| | | | | | | | | | | | | | | | type decl from a different canonical namespace. Summary: [Tooling] skip anonymous namespaces when checking if typeLoc references a type decl from a different canonical namespace. Reviewers: bkramer Subscribers: cfe-commits, klimek Differential Revision: https://reviews.llvm.org/D22808 llvm-svn: 276754
* [mips] Fix typos in spelling of lowerRETURNADDR.Daniel Sanders2016-07-263-3/+3
| | | | | | The first letter was mistakenly capitalized. llvm-svn: 276753
* Revert test commitMartin Bohme2016-07-261-1/+0
| | | | | | This reverts rL276746. llvm-svn: 276752
* Implement LCM and GCD for C++17. Same code as for Library Fundamentals TS.Marshall Clow2016-07-269-5/+426
| | | | llvm-svn: 276751
* Implement LCM and GCD for Library Fundamentals. Reviewed as ↵Marshall Clow2016-07-269-0/+492
| | | | | | https://reviews.llvm.org/D21343. llvm-svn: 276750
* [Hexagon] Update store offset when not packetizing it with allocframeKrzysztof Parzyszek2016-07-262-15/+51
| | | | | | | | | | When the packetizer wants to put a store to a stack slot in the same packet with an allocframe, it updates the store offset to reflect the value of SP before it is updated by allocframe. If the store cannot be packetized with the allocframe after all, the offset needs to be updated back to the previous value. llvm-svn: 276749
* [ARM] Improve error messages for .arch_extension directiveOliver Stannard2016-07-262-4/+33
| | | | | | | | | | | | - More informative message when extension name is not an identifier token. - Stop parsing directive if extension is unknown (avoid duplicate error messages). - Report unsupported extensions with a source location, rather than report_fatal_error. Differential Revision: https://reviews.llvm.org/D22806 llvm-svn: 276748
* [ARM] Implement -mimplicit-it assembler optionOliver Stannard2016-07-266-38/+820
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This option, compatible with gas's -mimplicit-it, controls the generation/checking of implicit IT blocks in ARM/Thumb assembly. This option allows two behaviours that were not possible before: - When in ARM mode, emit a warning when assembling a conditional instruction that is not in an IT block. This is enabled with -mimplicit-it=never and -mimplicit-it=thumb. - When in Thumb mode, automatically generate IT instructions when an instruction with a condition code appears outside of an IT block. This is enabled with -mimplicit-it=thumb and -mimplicit-it=always. The default option is -mimplicit-it=arm, which matches the existing behaviour (allow conditional ARM instructions outside IT blocks without warning, and error if a conditional Thumb instruction is outside an IT block). The general strategy for generating IT blocks in Thumb mode is to keep a small list of instructions which should be in the IT block, and only emit them when we encounter something in the input which means we cannot continue the block. This could be caused by: - A non-predicable instruction - An instruction with a condition not compatible with the IT block - The IT block already contains 4 instructions - A branch-like instruction (including ALU instructions with the PC as the destination), which cannot appear in the middle of an IT block - A label (branching into an IT block is not legal) - A change of section, architecture, ISA, etc - The end of the assembly file. Some of these, such as change of section and end of file, are parsed outside of the ARM asm parser, so I've added a new virtual function to AsmParser to ensure any previously-parsed instructions have been emitted. The ARM implementation of this flushes the currently pending IT block. We now have to try instruction matching up to 3 times, because we cannot know if the current IT block is valid before matching, and instruction matching changes depending on the IT block state (due to the 16-bit ALU instructions, which set the flags iff not in an IT block). In the common case of not having an open implicit IT block and the instruction being matched not needing one, we still only have to run the matcher once. I've removed the ITState.FirstCond variable, because it does not store any information that isn't already represented by CurPosition. I've also updated the comment on CurPosition to accurately describe it's meaning (which this patch doesn't change). Differential Revision: https://reviews.llvm.org/D22760 llvm-svn: 276747
* Test commit -- adding a newlineMartin Bohme2016-07-261-0/+1
| | | | llvm-svn: 276746
* [ELF] Linkerscript: simplify DATA_SEGMENT_ALIGN evaluationGeorge Rimar2016-07-262-2/+2
| | | | | | | | | | | We can simplify the evaluation of DATA_SEGMENT_ALIGN just to simple align(). That way it will work exactly like we have in non-script case. Change was suggested by Rafael Ávila de Espíndola Differential revision: https://reviews.llvm.org/D22807 llvm-svn: 276745
* [lit] Document the 'available_features' member of the config object.Daniel Sanders2016-07-261-0/+3
| | | | llvm-svn: 276744
* [X86][SSE] Added extra memory folding tests for cvtsd2ss intrinsicSimon Pilgrim2016-07-261-0/+36
| | | | | | SSE only fold partial reg update instructions when optsize is enabled llvm-svn: 276743
* Disable test on windows.Rafael Espindola2016-07-261-0/+3
| | | | llvm-svn: 276742
* [ELF] - Fixed possible iterator overflow.George Rimar2016-07-261-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | We can have Opt.Commands size greater then Sections.size(). For example if we have next script: SECTIONS { .aaa : { *(.aaa) } .bbb : { *(.bbb) } .ccc : { *(.ccc) } } and next code: .global _start _start: nop .section .aaa,"a" .quad 0 Then amount of sections is less than amound of Opt.Commands and if we for example have all commands NoConstraint, that overflowed the iterator used. llvm-svn: 276741
* [X86][SSE] Fixed issue with memory folding of (v)cvtsd2ss intrinsicsSimon Pilgrim2016-07-263-2/+58
| | | | | | | | Fixed typo in the intrinsic definitions of (v)cvtsd2ss with memory folding. This was only unearthed when rL276102 started using the intrinsic again..... llvm-svn: 276740
* [mips] MIPS64R6 compact branch supportSimon Dardis2016-07-268-17/+387
| | | | | | | | | | | | | MIPS64R6 compact branch support. As the MIPS LLVM backend uses distinct MachineInstrs for certain 32 and 64 bit instructions (e.g. BEQ & BEQ64) that map to the same instruction, extend compact branch support for the corresponding 64bit branches. Reviewers: dsanders Differential Revision: https://reviews.llvm.org/D20164 llvm-svn: 276739
* Fixed spelling in commentSimon Pilgrim2016-07-261-1/+1
| | | | llvm-svn: 276738
* [tblgen] Compare const char * with strcmp instead of creating StringRef.Benjamin Kramer2016-07-261-2/+2
| | | | | | | Avoids a call to strlen on both strings which always reads the entire string. strcmp can use early exit. llvm-svn: 276737
* [mips] sgtu, s[rl]l, sra, dnegu, neg instruction aliasesSimon Dardis2016-07-2621-5/+182
| | | | | | | | | | | Add the instruction alias sgtu (register form only), two operand forms of s[rl]l and sra, and missing single/two operand forms of dnegu/neg. Reviewers: dsanders Differential Revision: https://reviews.llvm.org/D22752 llvm-svn: 276736
* Fix incorrect form test in SymbolFileDWARFPavel Labath2016-07-262-1/+2
| | | | | | | | | | | | | | | | | | Summary: We were checking whether an attribute is in block form by getting the block data pointer, which was not correct as the pointer be null even if the attribute is in block form. Other places in the file already use the correct test. To make this work, I've needed to add DW_FORM_exprlock to the list of "block" forms, which seems correct as that is how we are parsing it. Reviewers: clayborg Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D22756 llvm-svn: 276735
* Fix DataExtractor::PeekData for zero length peeksPavel Labath2016-07-262-4/+21
| | | | | | | | | | | | | | | | | | | | | | Summary: The function was returning the null pointer for peeks of size zero, which seems like a sensible thing to do, but is actually pretty easy to get bitten by that if you are extracting a variable length field which happens to be of zero length and then doing pointer arithmetic on that (which SymbolFileDWARF does, and ended up crashing in case of empty DW_AT_location). This changes the function to return a null pointer only when it gets queried for data which is outside of the range of the extractor, which is more c++-y, as one can still do reasonable things with pointers to data of size zero (think, end() iterators). I also add a test and fix some signedness warnings in the existing data extractor tests. Reviewers: clayborg Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D22755 llvm-svn: 276734
* [X86] Remove isCommutable=1 from instructions that also load. Commuting such ↵Craig Topper2016-07-262-9/+13
| | | | | | instruction isn't useful as it would unfold the load. The exception being FMA3 instructions. llvm-svn: 276733
* [AVX512] Don't mark ADDSSZr_Int or MULSSZr_Int as commutable. The intrinsics ↵Craig Topper2016-07-261-2/+2
| | | | | | have one of their arguments indicated as passing through the high bits and we can't commute that. llvm-svn: 276732
* [ELF/Linkerscript] Remove special handling of TLS/NOTE/RELRO sections (patch ↵Eugene Leviant2016-07-261-23/+0
| | | | | | from ruiu) llvm-svn: 276731
* Remove obsolete XFAIL for a test that used to sometimes miscompile underDimitry Andric2016-07-261-5/+0
| | | | | | | FreeBSD with gcc 4.2.1, a long time ago (see r113824). Noticed by Pete Cooper. llvm-svn: 276730
* Add support for an additional dictionary in the per-arch plistsJason Molenda2016-07-262-0/+113
| | | | | | | | | | | | | | | | | | | | | that may be embedded in the Contents/Resources subdir of a dSYM bundle. These allow for the specification of a build-time path to debug-time path remapping for source files. Files may be built in /BuildDirectory/sources/project-100 but when the debugger is run, they're actually found via ~sources/project-100 - this plist allows for that remapping through the DBGBuildSourcePath and DBGSourcePath keys. This patch adds support for a new DBGSourcePathRemapping dictionary in the plist where the keys are the build-time paths and the values are the debug-time paths that they should be remapped to. There are instances were we have multiple possible build-time paths that need to be included, so the dictionary was required. <rdar://problem/26725174> llvm-svn: 276729
* Update for LLVM changesDavid Majnemer2016-07-2612-7113/+5018
| | | | | | | InstSimplify has gained the ability to remove needless bitcasts which perturbed some clang codegen tests. llvm-svn: 276728
* Reapply: [InstSimplify] Add support for bitcasts"David Majnemer2016-07-265-4/+65
| | | | | | | This reverts commit r276700 and reapplies r276698. The relevant clang tests have been updated. llvm-svn: 276727
* [OpenMP] diagnose orphaned teams constructKelvin Li2016-07-263-6/+19
| | | | | | | | | | The OpenMP spec mandates that 'a teams construct must be contained within a target construct'. Currently, this scenario is not diagnosed. This patch is to add check for orphaned teams construct and issue an error message. Differential Revision: https://reviews.llvm.org/D22785 llvm-svn: 276726
* Propery format doccomment in lto.h . NFCAmaury Sechet2016-07-261-4/+4
| | | | llvm-svn: 276725
* LiveIntervalAnalysis: Fix handleMoveDown() problemMatthias Braun2016-07-262-62/+93
| | | | | | | | | | | | If we move a last-use register read to a later position we may skip intermediate segments. This may require us to not only extend the segment before the NewIdx, but also extend the segment live-in to OldIdx. This switches LiveIntervalTest to use AMDGPU so we can test subregister liveness. llvm-svn: 276724
* GlobalISel: remove redundant ';'s. NFCTim Northover2016-07-263-3/+3
| | | | llvm-svn: 276723
* DynamicLoaderDarwinKernel will look in four addresses for the kernelJason Molenda2016-07-261-2/+3
| | | | | | | | load address on 64-bit devices; it only needs to look in three. <rdar://problem/27061405> llvm-svn: 276721
* Add qualification to fix MSVC build.Peter Collingbourne2016-07-261-1/+1
| | | | llvm-svn: 276720
* COFF: Implement /linkrepro flag.Peter Collingbourne2016-07-2615-138/+316
| | | | | | | | | | | | | | | | This flag is implemented similarly to --reproduce in the ELF linker. This patch implements /linkrepro by moving the cpio writer and associated utility functions to lldCore, and using that implementation in both linkers. One COFF-specific detail is that we store the object file from which the resource files were created in our reproducer, rather than the resource files themselves. This allows the reproducer to be used on non-Windows systems for example. Differential Revision: https://reviews.llvm.org/D22418 llvm-svn: 276719
* [CMake] Updating Xcode Toolchain creation to support Xcode 7Chris Bieneman2016-07-261-6/+7
| | | | | | | | Recent changes to Xcode have changed the structure of Xcode toolchains. This patch makes the xcode-toolchain goop construct a new-format Xcode toolchain that is compatible with Xcode 7. The new format has a compatibility version key, so when a new format comes out we can support multiple formats in parallel. llvm-svn: 276718
* Split getPhdrsIndices. NFC.Rui Ueyama2016-07-262-11/+17
| | | | llvm-svn: 276717
* [Coverage] Do not write out coverage mappings with zero entriesVedant Kumar2016-07-262-3/+17
| | | | | | | | | | | | | After r275121, we stopped mapping regions from system headers. Lambdas declared in regions belonging to system headers started producing empty coverage mappings, since the files corresponding to their spelling locs were being ignored. The coverage reader doesn't know what to do with these empty mappings. This commit makes sure that we don't produce them and adds a test. I'll make the reader stricter in a follow-up commit. llvm-svn: 276716
* Replace std::find_if with plain for loop. NFC.Rui Ueyama2016-07-261-10/+8
| | | | llvm-svn: 276715
OpenPOWER on IntegriCloud