summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Attempt to work around an MSVC rejects-valid. Apparently it gets the accessRichard Smith2016-02-051-7/+5
| | | | | | | check wrong when inheriting a member through two levels of private inheritance, where the middle one is a class template specialization. llvm-svn: 259943
* More workarounds for undefined behavior exposed when compiling in C++14 withRichard Smith2016-02-053-1/+13
| | | | | | | | -fsized-deallocation. Disable sized deallocation for all objects derived from TrailingObjects, as we expect the storage allocated for these objects to be larger than the size of their dynamic type. llvm-svn: 259942
* [PGO] Speed up name tab readingXinliang David Li2016-02-051-13/+16
| | | | | | | | The change allows skipping duplicate strings early to avoid redundant md5 computation and string copying/swapping. llvm-svn: 259941
* [llvm-nm] Prefer empty() over size() == 0.Davide Italiano2016-02-051-1/+1
| | | | | | Thanks to David Blaikie for pointing this out! llvm-svn: 259938
* [llvm-nm] Transform a switch() statement in a pair of if(s).Davide Italiano2016-02-051-7/+2
| | | | | | | This is more uniform wrt what other tools do and makes the code a little bit more readable. llvm-svn: 259937
* Move DebugInfoKind enum from Driver to Basic. NFCPaul Robinson2016-02-053-5/+5
| | | | llvm-svn: 259935
* Add an ARC autoreleased-return-value caller marker on i386.John McCall2016-02-052-0/+48
| | | | | | rdar://24531556 llvm-svn: 259932
* [SystemZ] Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP macrosUlrich Weigand2016-02-052-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_[1248] macros on SystemZ. This fixes a miscompile of GCC C++11 standard library headers due to use of those macros in an ABI-changing manner. See e.g. /usr/include/c++/4.8.5/ext/concurrence.h: // Compile time constant that indicates prefered locking policy in // the current configuration. static const _Lock_policy __default_lock_policy = #ifdef __GTHREADS #if (defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2) \ && defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4)) _S_atomic; #else _S_mutex; #endif #else _S_single; #endif A different choice of __default_lock_policy causes different sizes of several of the C++11 data structures, which are then incompatible when inlined in clang-compiled code with what the (GCC-compiled) external library expects. This in turn leads to various crashes when using std::thread in code compiled with clang, as see e.g. via the ThreadPool unit tests. See PR 26473 for an example. llvm-svn: 259931
* [llvm-nm] Simplify code logic. NFCI.Davide Italiano2016-02-051-7/+3
| | | | llvm-svn: 259917
* Do not honor explicit alignment attribute on fields for PS4.Sunil Srivastava2016-02-055-3/+55
| | | | | | | | This change reverts r257462 for PS4 triple. Differential Revision: http://reviews.llvm.org/D16788 llvm-svn: 259916
* CallAnalyzer::analyzeCall: change the condition back to "Cost < Threshold"Hans Wennborg2016-02-051-1/+1
| | | | | | | | In r252595, I inadvertently changed the condition to "Cost <= Threshold", which caused a significant size regression in Chrome. This commit rectifies that. llvm-svn: 259915
* [AArch64] Refactoring aarch64-ldst-opt. NCF.Jun Bum Lim2016-02-051-25/+38
| | | | | | | Remove narrow load / store instructions from getMatchingPairOpcode(), and add getMatchingWideOpcode(). llvm-svn: 259914
* TableGen: Add IsOptional field to AsmOperandClassTom Stellard2016-02-052-1/+24
| | | | | | | | | | | | | | | Summary: This makes it possible to specify some operands as optional to the AsmMatcher. Setting this field to true will prevent the AsmMatcher from emitting 'too few operands' errors when there are missing optional operands. Reviewers: olista01, ab Subscribers: nhaustov, arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D15755 llvm-svn: 259913
* AMDGPU: Account for LDS alignmentMatt Arsenault2016-02-052-4/+277
| | | | | | | | | | | | | The current situation isn't great, because the amount of padding requires is determined by the inverse order of the first encountered use. We should eventually somehow sort these to minimize wasted space. Another problem is the alignment of kernel arguments isn't respected. The group_segment_alignment is always emitted as the default 16, and typed arguments with higher alignments or an explicitly set alignment are also ignored. llvm-svn: 259912
* AMDGPU: Preserve alignments on new created globalsMatt Arsenault2016-02-053-7/+41
| | | | | | | Also switch to internal linkage, and include the name of the function in the name. llvm-svn: 259911
* [Parser] Perform CachedTokens update dependent on token consumptionBruno Cardoso Lopes2016-02-052-2/+21
| | | | | | | | | | | | | | In the context where we break one tok::greatergreater into two tok::greater in order to correctly update the cached tokens; update the CachedTokens with two tok::greater only if ParseGreaterThanInTemplateList clients asks to consume the last token. Otherwise we only need to add one because the second is already added later on, as a not yet cached token. Differential Revision: http://reviews.llvm.org/D16906 rdar://problem/24488367 llvm-svn: 259910
* [codeview] Dump a missing field and change its signednessReid Kleckner2016-02-052-1/+3
| | | | llvm-svn: 259904
* Simplify. NFC.Rui Ueyama2016-02-051-2/+1
| | | | llvm-svn: 259903
* Take 2: Use an artifical namespace so that member vars do not hide local vars.Siva Chandra2016-02-0512-13/+409
| | | | | | | | | | | | Summary: This relands r259810 with fix for failures on Mac. Reviewers: spyffe, tfiala Subscribers: tfiala, lldb-commits Differential Revision: http://reviews.llvm.org/D16900 llvm-svn: 259902
* [modules] Separately track whether an identifier's preprocessor information andRichard Smith2016-02-055-3/+33
| | | | | | | | | | name lookup information have changed since deserialization. For a C++ modules build, we do not need to re-emit the identifier into the serialized identifier table if only the name lookup information has changed (and in all cases, we don't need to re-emit the macro information if only the name lookup information has changed). llvm-svn: 259901
* AMDGPU: Remove some purely R600 functions from AMDGPUInstrInfoTom Stellard2016-02-055-96/+28
| | | | | | | | | | Reviewers: arsenm Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D16862 llvm-svn: 259900
* ELF: Make Out<ELFT> initialization less error-prone.Rui Ueyama2016-02-051-46/+47
| | | | | | | | | | | Previously, it was easy to leave some Out<ELFT> fields uninitialized because assignments to the fields are mixed with output section instantiations. In this patch, I separate initializations from assignments to improve readability. http://reviews.llvm.org/D16864 llvm-svn: 259899
* [ASTMatchers] Allow hasName() to look through inline namespacesSamuel Benzaquen2016-02-053-22/+180
| | | | | | | | | | | | | | | | | Summary: Allow hasName() to look through inline namespaces. This will fix the interaction between some clang-tidy checks and libc++. libc++ defines names in an inline namespace named std::<version_#>. When we try to match a name using hasName("std::xxx") it fails to match and the clang-tidy check does not work. Reviewers: klimek Subscribers: klimek, cfe-commits Differential Revision: http://reviews.llvm.org/D15506 llvm-svn: 259898
* AMDGPU: Fix ordering of CPU and FS parameters in TargetMachine constructorsTom Stellard2016-02-052-10/+10
| | | | | | | | | | Reviewers: arsenm Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D16863 llvm-svn: 259897
* Fix echo.ll test failing due to DOS line endingsReid Kleckner2016-02-051-1/+1
| | | | llvm-svn: 259896
* Some stackslots are allocated to vregs which have no real reference.Wei Mi2016-02-052-7/+255
| | | | | | | | | | | | | | LiveRangeEdit::eliminateDeadDef is used to remove dead define instructions after rematerialization. To remove a VNI for a vreg from its LiveInterval, LiveIntervals::removeVRegDefAt is used. However, after non-PHI VNIs are all removed, PHI VNI are still left in the LiveInterval. Such unused vregs will be kept in RegsToSpill[] at the end of InlineSpiller::reMaterializeAll and spiller will allocate stackslot for them. The fix is to get rid of unused reg by checking whether it has non-dbg reference instead of whether it has non-empty interval. llvm-svn: 259895
* AMDGPU/SI: Correctly initialize SIInsertWaits passTom Stellard2016-02-053-7/+22
| | | | | | | | | | Reviewers: arsenm Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D16724 llvm-svn: 259894
* [WebAssembly] Update the select instructions' operand orders to match the spec.Dan Gohman2016-02-053-28/+28
| | | | llvm-svn: 259893
* Rename IsUsedInDynamicReloc to MustBeInDynSym.Rafael Espindola2016-02-055-12/+10
| | | | | | | | The variable was marking various cases where a symbol must be included in the dynamic symbol table. Being used by a dynamic relocation was only one of them. llvm-svn: 259889
* Add the missing test case for PR26193Nemanja Ivanovic2016-02-051-0/+9
| | | | llvm-svn: 259888
* Centralize most calls to setUsedInDynamicReloc.Rafael Espindola2016-02-053-10/+10
| | | | llvm-svn: 259887
* Fix for PR 26193Nemanja Ivanovic2016-02-052-2/+2
| | | | | | | This is a simple fix for a PowerPC intrinsic that was incorrectly defined (the return type was incorrect). llvm-svn: 259886
* Add support to detect arm hard float ABI based binaries for ABISysV_armOmair Javaid2016-02-054-7/+63
| | | | | | | | This patch adds logic to detect if underlying binary is using arm hard float abi and use that information while handling return values in ABISysV_arm. Differential revision: http://reviews.llvm.org/D16627 llvm-svn: 259885
* clang-format: Fix corner case in template detection.Daniel Jasper2016-02-053-7/+20
| | | | | | | | | | Before: f(a.operator() < A > ()); After: f(a.operator()<A>()); llvm-svn: 259884
* Move classes defined in a cpp file into an anonymous namespace.Benjamin Kramer2016-02-052-0/+4
| | | | | | No functionality change intended. llvm-svn: 259883
* Prefix external symbols in llvm-c-test.Benjamin Kramer2016-02-0510-46/+46
| | | | | | | | | This makes it less likely to clash with other stuff that might be linked in by change, e.g. ncurses exposes an external function called simply "echo", so linking ncurses statically into the binary explodes in funny ways. llvm-svn: 259882
* Revert "[AArch64] Improve load/store optimizer to handle LDUR + LDR (take 3)."Renato Golin2016-02-052-181/+21
| | | | | | This reverts commit r259812 as it broke AArch64 self-hosting. llvm-svn: 259881
* Unbreak the cmake shared build.Benjamin Kramer2016-02-051-0/+1
| | | | llvm-svn: 259880
* [clang-tdiy] Add header file extension configuration support.Haojian Wu2016-02-0511-41/+252
| | | | | | | | | | | | Summary: * Add a `HeaderFileExtensions` check option in misc-definitions-in-headers, google-build-namespaces and google-global-names-in-headers. Reviewers: aaron.ballman, alexfh Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D16113 llvm-svn: 259879
* Bump up the packet timeout for gdbremote testsPavel Labath2016-02-051-1/+1
| | | | | | | Log confirmed that the we are sometimes timing out on the receive, even though the server is sending the correct packets. llvm-svn: 259878
* [DebugInfo] Eliminate compilation warning about used variable LSDADmitry Polukhin2016-02-051-2/+1
| | | | | | | The waring was: lib/DebugInfo/DWARF/DWARFDebugFrame.cpp:643:20: warning: variable ‘LSDA’ set but not used llvm-svn: 259877
* [CMake] Introduce OPENMP_LLVM_TOOLS_DIRJonas Hahnfeld2016-02-053-2/+16
| | | | | | | | | This will be used in a later patch to find additional LLVM tools for tests and enables reusability for libomptarget that is currently under review. Differential Revision: http://reviews.llvm.org/D16713 llvm-svn: 259876
* [analyzer] Suppress localization diagnostics in debug classes and methods.Devin Coughlin2016-02-052-0/+54
| | | | | | | If the class or method name case-insensitively contains the term "debug", suppress warnings about string constants flowing to user-facing UI APIs. llvm-svn: 259875
* CodeGen: correct Windows ARM C++ assertionSaleem Abdulrasool2016-02-052-15/+13
| | | | | | | | | | | Because the Decl is explicitly passed as nullptr further up the call chain, it is possible to invoke isa on a nullptr, which will assert. Guard against the nullptr. Take the opportunity to reuse the helper method rather than re-implementing this logic. llvm-svn: 259874
* [CMake] One more try to make CMake clean up after itselfChris Bieneman2016-02-052-1/+5
| | | | | | Seriously... CMake... You're on my list... llvm-svn: 259873
* Revert "[CMake] Improve the clang order-file generation workflow"Chris Bieneman2016-02-053-19/+6
| | | | | | | | | | | | | This reverts commit r259862, and attempts to fix builder CMakeCaches. Will try this again some other time... Conflicts: CMakeLists.txt tools/driver/CMakeLists.txt llvm-svn: 259872
* [CMake] One more try to fix this.Chris Bieneman2016-02-051-0/+5
| | | | | | This change will catch any bots that generated the order file that GNU ld doesn't like and delete it before trying to generate one that I think GNU ld will deal with. llvm-svn: 259871
* [CMake] Speculative fix for linker error on LinuxChris Bieneman2016-02-051-2/+2
| | | | | | I can't reproduce this locally, but I think this may fix it. llvm-svn: 259870
* [LoopUnrolling] Try harder to avoid rebuilding LCSSA when possible.Michael Zolotukhin2016-02-051-7/+56
| | | | | | | | | | | | | In r255133 (reapplied r253126) we started to avoid redundant recomputation of LCSSA after loop-unrolling. This patch moves one step further in this direction - now we can avoid it for much wider range of loops, as we start to look at IR and try to figure out if the transformation actually breaks LCSSA phis or makes it necessary to insert new ones. Differential Revision: http://reviews.llvm.org/D16838 llvm-svn: 259869
* [MC] Add support for encoding CodeView variable definition rangesDavid Majnemer2016-02-0516-13/+332
| | | | | | | | | | | | | | | | | | | CodeView, like most other debug formats, represents the live range of a variable so that debuggers might print them out. They use a variety of records to represent how a particular variable might be available (in a register, in a frame pointer, etc.) along with a set of ranges where this debug information is relevant. However, the format only allows us to use ranges which are limited to a maximum of 0xF000 in size. This means that we need to split our debug information into chunks of 0xF000. Because the layout of code is not known until *very* late, we must use a new fragment to record the information we need until we can know *exactly* what the range is. llvm-svn: 259868
OpenPOWER on IntegriCloud