summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Consider addrspaces in canLosslesslyBitCastTo()Matt Arsenault2014-08-311-3/+7
| | | | | | | | | | Make this conservatively correct and report false for different address spaces, which might require a nontrivial translation. Based on the few uses of this, I don't think this currently breaks anything. llvm-svn: 216846
* DebugInfo: Move argument creation up into the caller that's unambiguously ↵David Blaikie2014-08-312-26/+34
| | | | | | handling the subprogram scope (replacing a conditional with an assertion in the process) llvm-svn: 216845
* Fix formattingTobias Grosser2014-08-311-1/+1
| | | | llvm-svn: 216844
* Introduce a typedef for the IDToValue typeTobias Grosser2014-08-312-5/+5
| | | | llvm-svn: 216843
* Use range based for loopsTobias Grosser2014-08-311-32/+19
| | | | llvm-svn: 216842
* clang/test/CXX/drs/dr5xx.cpp: Suppress dr547 for targeting MSVC x86 for now, ↵NAKAMURA Takumi2014-08-311-0/+2
| | | | | | | | | | | | | | | | | | | due to incompatibility of attribute(thiscall). With targeting i686-win32, error: 'error' diagnostics seen but not expected: File clang/test/CXX/drs/dr5xx.cpp Line 521: implicit instantiation of undefined template 'dr547::X<void () __attribute__((thiscall)) const>' File clang/test/CXX/drs/dr5xx.cpp Line 518: implicit instantiation of undefined template 'dr547::X<void () __attribute__((thiscall)) const>' File clang/test/CXX/drs/dr5xx.cpp Line 518: implicit instantiation of undefined template 'dr547::X<void () __attribute__((thiscall)) const>' error: 'note' diagnostics seen but not expected: File clang/test/CXX/drs/dr5xx.cpp Line 516: template is declared here File clang/test/CXX/drs/dr5xx.cpp Line 521: in instantiation of function template specialization 'dr547::f<void () __attribute__((thiscall)) const, dr547::S>' requested here File clang/test/CXX/drs/dr5xx.cpp Line 516: template is declared here File clang/test/CXX/drs/dr5xx.cpp Line 516: template is declared here 7 errors generated. llvm-svn: 216841
* Delay adding imported entity DIEs to the lexical scope, streamlining the ↵David Blaikie2014-08-311-5/+5
| | | | | | | | | | check for "this scope has nothing in it" This makes the emptiness of the scope with regards to variables and nested scopes is the same as with regards to imported entities. Just check if we had nothing at all before we build the node. llvm-svn: 216840
* Modify DwarfDebug::constructImportedEntityDIE to return rather than insert ↵David Blaikie2014-08-312-16/+7
| | | | | | | | into the scope Another step towards improving lexical_scope handling llvm-svn: 216839
* Refactor constructImportedEntityDIE(DwarfUnit, DIImportedEntity) to return a ↵David Blaikie2014-08-312-11/+16
| | | | | | | | | | | DIE rather than inserting it into a specified context. First of many steps to improve lexical scope construction (to omit trivial lexical scopes - those without any direct variables). To that end it's easier not to create imported entities directly into the lexical scope node, but to build them, then add them if necessary. llvm-svn: 216838
* cxx_status: we did support some of C++14 in Clang 3.3.Richard Smith2014-08-311-1/+1
| | | | llvm-svn: 216837
* cxx_status: the name C++14 isn't provisional any more.Richard Smith2014-08-311-8/+9
| | | | llvm-svn: 216836
* Tests for DR525-550.Richard Smith2014-08-312-20/+336
| | | | llvm-svn: 216834
* Simplify expression using container's front() rather than begin()->David Blaikie2014-08-311-3/+1
| | | | llvm-svn: 216833
* Add some negative (and positive) static_assert checks for ↵David Blaikie2014-08-311-0/+17
| | | | | | ArrayRef-of-pointer conversions introduced in r216709 llvm-svn: 216830
* clang/test/CodeGenCXX/debug-info-access.cpp: Use %itanium_abi_triple to ↵NAKAMURA Takumi2014-08-311-1/+1
| | | | | | appease msvc. "[def] [free]" can be seen in different order. llvm-svn: 216829
* [PATCH][Interpreter] Add missing FP intrinsic lowering.Josh Klontz2014-08-302-0/+32
| | | | | | | | | | | | | | | | | Summary: This extends the work done in [1], adding missing intrinsic lowering for floor, trunc, round and copysign. [1] http://comments.gmane.org/gmane.comp.compilers.llvm.cvs/199372 Test Plan: Extended `test/ExecutionEngine/Interpreter/intrinsics.ll` to test the additional missing intrinsics. All tests pass. Reviewers: dexonsmith Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D5120 llvm-svn: 216827
* Teach llvm-bcanalyzer to use one stream's BLOCKINFO to read another stream.Jordan Rose2014-08-307-31/+137
| | | | | | | | | | | This allows streams that only use BLOCKINFO for debugging purposes to omit the block entirely. As long as another stream is available with the correct BLOCKINFO, the first stream can still be analyzed and dumped. As part of this commit, BitstreamReader gets a move constructor and move assignment operator, as well as a takeBlockInfo method. llvm-svn: 216826
* Fix some cases where StringRef was being passed by const reference. Remove ↵Craig Topper2014-08-3014-30/+30
| | | | | | const from some other StringRefs since its implicitly const already. llvm-svn: 216825
* Use llvm::makeArrayRef instead of explicitly calling ArrayRef constructor ↵Craig Topper2014-08-3012-32/+23
| | | | | | and mentioning the type. This works now that we have a conversion from ArrayRef<T*> to ArrayRef<const T*>. llvm-svn: 216824
* Remove 'virtual' keyword from methods markedwith 'override' keyword.Craig Topper2014-08-3017-83/+80
| | | | llvm-svn: 216823
* Use StringRef to avoid copies and simplify code.Craig Topper2014-08-301-18/+6
| | | | llvm-svn: 216822
* Add a test for converting ArrayRef<T *> to ArrayRef<const T *>.Craig Topper2014-08-301-0/+10
| | | | llvm-svn: 216821
* Fix some cases where StringRef was being passed by const reference. Remove ↵Craig Topper2014-08-3021-66/+65
| | | | | | const from some other StringRefs since its implicitly const already. llvm-svn: 216820
* JIT support has been added awhile ago.Brad Smith2014-08-301-2/+0
| | | | llvm-svn: 216819
* Fix AddAliasScopeMetadata to not add scopes when deriving from unknown pointersHal Finkel2014-08-302-30/+56
| | | | | | | | | | | | | | | | | | | | | | | The previous implementation of AddAliasScopeMetadata, which adds noalias metadata to preserve noalias parameter attribute information when inlining had a flaw: it would add alias.scope metadata to accesses which might have been derived from pointers other than noalias function parameters. This was incorrect because even some access known not to alias with all noalias function parameters could easily alias with an access derived from some other pointer. Instead, when deriving from some unknown pointer, we cannot add alias.scope metadata at all. This fixes a miscompile of the test-suite's tramp3d-v4. Furthermore, we cannot add alias.scope to functions unless we know they access only argument-derived pointers (currently, we know this only for memory intrinsics). Also, we fix a theoretical problem with using the NoCapture attribute to skip the capture check. This is incorrect (as explained in the comment added), but would not matter in any code generated by Clang because we get only inferred nocapture attributes in Clang-generated IR. This functionality is not yet enabled by default. llvm-svn: 216818
* InstCombine: Respect recursion depth in visitUDivOperandDavid Majnemer2014-08-301-4/+4
| | | | llvm-svn: 216817
* Always pipe in test filesTobias Grosser2014-08-3055-55/+55
| | | | | | | | | In Polly we used to have a mix of test cases, some that used 'opt %s' and others that used 'opt < %s'. We now change all to use 'opt < %s'. Piping in test files is preferable as it does prevent temporary files to be written to disk. This brings us in line with what is usus in LLVM. llvm-svn: 216816
* Replace %defaultOpts with explicit pass namesTobias Grosser2014-08-30105-121/+120
| | | | | | | | | | | | | | | | | | | | This replaces the use of %defaultOpts = '-basicaa -polly-prepare' with the minimal set of passes necessary for a test to succeed. Of the test cases that previously used %defaultOpts 76 test cases require none of these passes, 42 need -basicaa and only 2 need -polly-prepare. Our change makes this requirement explicit. In Polly many test cases have been using a macro '%defaultOpts' which run a couple of preparing passes before the actual Polly test case. This macro was introduced very early in the development of Polly and originally contained a large set of canonicalization passes. However, as the need for additional canonicalization passes makes test cases harder to understand and also more fragile in terms of changes in such passes, we aim since a longer time to only include the minimal set of passes necessary. This patch removes the last leftovers from of %defaultOpts and brings our tests cases more in line to what is usus in LLVM itself. llvm-svn: 216815
* InstCombine: Try harder to combine icmp instructionsDavid Majnemer2014-08-302-4/+38
| | | | | | | | | | | | | consider: (and (icmp X, Y), (and Z, (icmp A, B))) It may be possible to combine (icmp X, Y) with (icmp A, B). If we successfully combine, create an 'and' instruction with Z. This fixes PR20814. N.B. There is room for improvement after this change but I'm not convinced it's worth chasing yet. llvm-svn: 216814
* Revert r216805 "[MachineCombiner][AArch64] Use the correct register class ↵Juergen Ributzka2014-08-302-139/+73
| | | | | | | | for MADD, SUB, and OR." I think this broke the build bot. Reverting it for now until I have time to take a closer look. llvm-svn: 216813
* Fixed a build problem when there were headersSean Callanan2014-08-301-2/+2
| | | | | | | for a different LLVM present in the system header lookup path. llvm-svn: 216812
* Add missing const to StringRef.copy()Nick Kledzik2014-08-301-1/+1
| | | | llvm-svn: 216811
* Fixed a build problem dueo to changes in theSean Callanan2014-08-301-1/+1
| | | | | | | way ownership of memory buffers is handled in clang's SourceManager. llvm-svn: 216810
* Fix typo and formattingNick Kledzik2014-08-301-3/+3
| | | | llvm-svn: 216809
* Object/llvm-objdump: allow dumping of mach-o exports trieNick Kledzik2014-08-308-7/+397
| | | | | | | | | | | | | | | | | | MachOObjectFile in lib/Object currently has no support for parsing the rebase, binding, and export information from the LC_DYLD_INFO load command in final linked mach-o images. This patch adds support for parsing the exports trie data structure. It also adds an option to llvm-objdump to dump that export info. I did the exports parsing first because it is the hardest. The information is encoded in a trie structure, but the standard ObjectFile way to inspect content is through iterators. So I needed to make an iterator that would do a non-recursive walk through the trie and maintain the concatenation of edges needed for the current string prefix. I plan to add similar support in MachOObjectFile and llvm-objdump to parse/display the rebasing and binding info too. llvm-svn: 216808
* Cleanup test.Rafael Espindola2014-08-301-21/+31
| | | | | | This should make it easier to add more tests to this file. llvm-svn: 216807
* [modules] Fix deserialization cycle when loading a tag declaration with a ↵Richard Smith2014-08-305-59/+96
| | | | | | typedef name for linkage purposes. When loading the type, delay loading its typedef until we've finished loading and merging the type. In its place, save out the name of the typedef, which we need for merging purposes. llvm-svn: 216806
* [MachineCombiner][AArch64] Use the correct register class for MADD, SUB, and OR.Juergen Ributzka2014-08-292-73/+139
| | | | | | | | | | Select the correct register class for the various instructions that are generated when combining instructions and constrain the registers to the appropriate register class. This fixes rdar://problem/18183707. llvm-svn: 216805
* [FastISel][AArch64] Use the correct register class for branches.Juergen Ributzka2014-08-292-7/+24
| | | | | | | | Also constrain the register class for branches. This fixes rdar://problem/18181496. llvm-svn: 216804
* [MachineSinking] Clear kill flag of all operands at all their uses.Juergen Ributzka2014-08-292-3/+40
| | | | | | | | | | | | | | | | | | | | | | | When sinking an instruction it might be moved past the original last use of one of its operands. This last use has the kill flag set and the verifier will obviously complain about this. Before Machine Sinking (AArch64): %vreg3<def> = ASRVXr %vreg1, %vreg2<kill> %XZR<def> = SUBSXrs %vreg4, %vreg1<kill>, 160, %NZCV<imp-def> ... After Machine Sinking: %XZR<def> = SUBSXrs %vreg4, %vreg1<kill>, 160, %NZCV<imp-def> ... %vreg3<def> = ASRVXr %vreg1, %vreg2<kill> This fix clears all the kill flags in all instruction that use the same operands as the instruction that is being sunk. This fixes rdar://problem/18180996. llvm-svn: 216803
* Cleanup the test a bit. It was too dependent on the output order.Rafael Espindola2014-08-291-180/+176
| | | | llvm-svn: 216802
* [MCJIT] Move endian-aware read/writes from RuntimeDyldMachO intoLang Hames2014-08-298-57/+46
| | | | | | | | | RuntimeDyldImpl. These are platform independent, and moving them to the base class allows RuntimeDyldChecker to use them too. llvm-svn: 216801
* Debug info: Only emit C++ accessibility specifiers when they are divergingAdrian Prantl2014-08-2911-61/+113
| | | | | | | | from the default for the containing type. rdar://problem/18154959 llvm-svn: 216800
* Debug info: Add a new explicit DIDescriptor flag for the "public" accessAdrian Prantl2014-08-298-20/+194
| | | | | | | | | | specifier and change the default behavior to only emit the DW_AT_accessibility(public) attribute when the isPublic() is explicitly set. rdar://problem/18154959 llvm-svn: 216799
* Comment only: Annotate loop as per mailing list discussionJean-Luc Duprat2014-08-291-0/+3
| | | | llvm-svn: 216798
* Make isValidMCLOHType take unsigned instead of enum to avoid loading invalid ↵Alexey Samsonov2014-08-292-4/+3
| | | | | | enum values llvm-svn: 216797
* Add some missing test coverage for merging 'extern "C"' functions with modules.Richard Smith2014-08-295-0/+15
| | | | llvm-svn: 216796
* Next bit of support for llvm-objdump’s -private-headers for Mach-O files.Kevin Enderby2014-08-292-3/+587
| | | | | | | This adds the printing of the LC_SEGMENT load command and sections, LC_SYMTAB and LC_DYSYMTAB load commands. llvm-svn: 216795
* AArch64: Silence -Wabsolute-value warning with std::absReid Kleckner2014-08-291-1/+2
| | | | llvm-svn: 216794
* Speculative build fix for const, gcc, and ArrayRef overloadsReid Kleckner2014-08-291-3/+3
| | | | llvm-svn: 216793
OpenPOWER on IntegriCloud