summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* AMDGPU/SI: Add llvm.amdgcn.mov.dpp intrinsicTom Stellard2016-02-133-0/+30
| | | | | | | This intrinsic will be used to expose dpp functionality to higher-level languages. It will map to the dpp version of v_mov_b32. llvm-svn: 260792
* [Cloning] Clone every Function's Debug InfoKeno Fischer2016-02-134-2/+33
| | | | | | | | | | | | | | | | | | | | | | | Summary: Export the CloneDebugInfoMetadata utility, which clones all debug info associated with a function into the first module. Also use this function in CloneModule on each function we clone (the CloneFunction entrypoint already does this). Without this, cloning a module will lead to DI quality regressions, especially since r252219 reversed the Function <-> DISubprogram edge (before we could get lucky and have this edge preserved if the DISubprogram itself was, e.g. due to location metadata). This was verified to fix missing debug information in julia and a unittest to verify the new behavior is included. Patch by Yichao Yu! Thanks! Reviewers: loladiro, pcc Differential Revision: http://reviews.llvm.org/D17165 llvm-svn: 260791
* Add AMDGPU related triple vendors/OSesMatt Arsenault2016-02-133-2/+23
| | | | | | | | As support expands to more runtimes, we'll need to distinguish between more than just HSA and unknown. This also lets us stop using unknown everywhere. llvm-svn: 260790
* [llvm-size] Remove variable used only once.Davide Italiano2016-02-131-8/+4
| | | | | | The use of auto and the name were very weird anyway. llvm-svn: 260789
* Accept "-Weverything" in clang diagnistic pragmasSunil Srivastava2016-02-134-4/+81
| | | | | | Differential Revision: http://reviews.llvm.org/D15095 llvm-svn: 260788
* [Sema] More changes to fix Objective-C fallout from r249995.Bob Wilson2016-02-134-39/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a follow-up to PR26085. That was fixed in r257710 but the testcase there was incomplete. There is a related issue where the overload resolution for Objective-C incorrectly picks a method that is not valid without a bridge cast. The call to Sema::CheckSingleAssignmentConstraints that was added to SemaOverload.cpp's IsStandardConversion() function does not catch that case and reports that the method is Compatible even when it is not. The root cause here is that various Objective-C-related functions in Sema do not consistently return a value to indicate whether there was an error. This was fine in the past because they would report diagnostics when needed, but r257710 changed them to suppress reporting diagnostics when checking during overload resolution. This patch adds a new ACR_error result to the ARCConversionResult enum and updates Sema::CheckObjCARCConversion to return that value when there is an error. Most of the calls to that function do not check the return value, so adding this new result does not affect them. The one exception is in SemaCast.cpp where it specifically checks for ACR_unbridged, so that is also OK. The call in Sema::CheckSingleAssignmentConstraints can then check for an ACR_okay result and identify assignments as Incompatible. To preserve the existing behavior, it only changes the return value to Incompatible when the new Diagnose argument (from r257710) is false. Similarly, the CheckObjCBridgeRelatedConversions and ConversionToObjCStringLiteralCheck need to identify when an assignment is Incompatible. Those functions already return appropriate values but they need some fixes related to the new Diagnose argument. llvm-svn: 260787
* [llvm-size] Make error handling uniform.Davide Italiano2016-02-132-33/+10
| | | | llvm-svn: 260786
* [RecursiveASTVisitor] Introduce dataTraverseStmtPre()/dataTraverseStmtPost() ↵Argyrios Kyrtzidis2016-02-132-4/+23
| | | | | | | | to allow clients to do before/after actions during data recursive visitation. This should fix the asan bot that hits stack overflow in a couple of test/Index tests. llvm-svn: 260785
* AMDGPU: Cleanup includes and random macrosMatt Arsenault2016-02-131-11/+4
| | | | llvm-svn: 260784
* AMDGPU: Add sin/cos builtinsMatt Arsenault2016-02-133-0/+30
| | | | llvm-svn: 260783
* AMDGPU: Add intrinsics for sin/cosMatt Arsenault2016-02-136-1/+77
| | | | | | | These provide direct access to the hardware instruction without the unit version required like llvm.sin/llvm.cos lowering requires. llvm-svn: 260782
* AMDGPU: Update builtin for intrinsic changeMatt Arsenault2016-02-133-13/+13
| | | | llvm-svn: 260781
* AMDGPU: Rename intrinsic to better match instruction nameMatt Arsenault2016-02-1310-33/+53
| | | | | | Also fixes missing f32 test. llvm-svn: 260780
* Disable two tests that use a lot of stack under ASan.Alexey Samsonov2016-02-132-4/+4
| | | | llvm-svn: 260779
* Update page to list supported targetsMatt Arsenault2016-02-131-2/+2
| | | | llvm-svn: 260778
* Split sources for amdgcn and r600Matt Arsenault2016-02-1334-38/+75
| | | | | | | | | | | Most files remain in a common amdgpu directory. Also switches barriers to to use convergent, and use llvm.amdgcn.s.barrier. This now requires 3.9/trunk to build amdgcn. llvm-svn: 260777
* Make -Wnull-conversion more useful.Richard Trieu2016-02-132-7/+56
| | | | | | | | | | When a null constant is used in a macro, walk through the macro stack to determine where the null constant is written and where the context is located. Only warn if both locations are within the same macro expansion. This helps function-like macros which involve pointers be treated as if they were functions. llvm-svn: 260776
* [TSan] Adjust expectation for check_analyze.shAlexey Samsonov2016-02-131-1/+7
| | | | | | | | | | r260695 caused extra push/pop instruction pair in __tsan_read1 implementation. Still, that change in InstCombine is believed to be good, as it reduces the number of instructions performed. Adjust the expectations to match the newly generated code. llvm-svn: 260775
* AMDGPU/SI: Add instruction defs for VOP1 DPP instructionsTom Stellard2016-02-132-0/+107
| | | | | | | | | | Reviewers: nhaustov, cfang, arsenm Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D17159 llvm-svn: 260774
* AMDGPU: Fix broken condition causing warningMatt Arsenault2016-02-131-1/+1
| | | | llvm-svn: 260773
* Adding an SBThread::StepInto that takes an end-line, also moved the code ↵Jim Ingham2016-02-136-64/+121
| | | | | | | | that figures out the address range for the step to SymbolContext. llvm-svn: 260772
* AMDGPU/SI: Organize intrinsics by subtargetTom Stellard2016-02-131-20/+25
| | | | | | | | | | Reviewers: arsenm Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D17210 llvm-svn: 260771
* [TestLibCxxAtomic] Fix Makefile so that the test builds on Linux.Siva Chandra2016-02-131-0/+1
| | | | | | | | | | Reviewers: granata.enrico Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D17227 llvm-svn: 260770
* Don't combine fp_round (fp_round x) if f80 to f16 is generatedPirama Arumuga Nainar2016-02-132-0/+26
| | | | | | | | | | | | | | | | | | | | Summary: This patch skips DAG combine of fp_round (fp_round x) if it results in an fp_round from f80 to f16. fp_round from f80 to f16 always generates an expensive (and as yet, unimplemented) libcall to __truncxfhf2. This prevents selection of native f16 conversion instructions from f32 or f64. Moreover, the first (value-preserving) fp_round from f80 to either f32 or f64 may become a NOP in platforms like x86. Reviewers: ab Subscribers: srhines, llvm-commits Differential Revision: http://reviews.llvm.org/D17221 llvm-svn: 260769
* Removed many JIT workarounds from IRForTarget.Sean Callanan2016-02-135-1013/+89
| | | | | | | | | | | | | | | | | | | | | | Since IRExecutionUnit is now capable of looking up symbols, and the JIT is up to the task of generating the appropriate relocations, we don't need to do all the work that IRForTarget used to do to fixup symbols at the IR level. We also don't need to allocate data manually (with its attendant bugs) because the JIT is capable of doing so without crashing. We also don't need the awkward lldb.call.realName metadata to determine what calls are objc_msgSend, because they now just reference objc_msgSend. To make this work, we ensure that we recognize which symbols are extern "C" and report them to the compiler as such. We also report the full Decl of functions rather than just making up top-level functions with the appropriate types. This should not break any testcases, but let me know if you run into any issues. <rdar://problem/22864926> llvm-svn: 260768
* Fix stripping of _ when looking for symbols in IRExecutionUnit.Sean Callanan2016-02-122-82/+41
| | | | | | | | | | | | | Previously we would try both versions of a symbol -- the one with _ in it and the one without -- in all cases, because we didn't know what the current platform's policy was. However, stripping _ is only necessary on platforms where _ is the prefix for global symbols. There's an API that does this, though, on llvm::DataLayout, so this patch fixes IRExecutionUnit to use that API to determine whether or not to strip _ from the symbol or not. llvm-svn: 260767
* Fix Windows buildbot breakage.Alexey Samsonov2016-02-121-3/+4
| | | | llvm-svn: 260766
* AMDGPU/SI: Detect uniform branches and emit s_cbranch instructionsTom Stellard2016-02-1235-119/+937
| | | | | | | | | | Reviewers: arsenm Subscribers: mareko, MatzeB, qcolombet, arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D16603 llvm-svn: 260765
* Disable the vzeroupper insertion pass on PS4.Yunzhong Gao2016-02-125-2/+19
| | | | | | Differential Revision: http://reviews.llvm.org/D16837 llvm-svn: 260764
* cmake: Simplify the iOS.cmake toolchainJustin Bogner2016-02-121-40/+15
| | | | | | | | | | | | | | | - Remove a comment that was clearly copy pasted from Android.cmake and isn't relevant. - Remove the toolchain's sensitivity to the environment. It's less error prone to just allow users to set CMAKE_OSX_SYSROOT if they want to use a custom SDK. - Stop explicitly setting -mios-version-min to the default value. It just adds needless complexity. This makes building the native tablegen work for me even when SDKROOT is set in the environment (or passed in as -DCMAKE_OSX_SYSROOT). llvm-svn: 260763
* [index] Add llvm/Support/DataTypes.h header to fix build failures in the bots.Argyrios Kyrtzidis2016-02-121-0/+1
| | | | llvm-svn: 260762
* Remove an unnecessary includeEnrico Granata2016-02-121-1/+0
| | | | llvm-svn: 260761
* [libclang] Separate the underlying indexing functionality of libclang and ↵Argyrios Kyrtzidis2016-02-1216-694/+2023
| | | | | | | | introduce it into the clangIndex library. It is a general goodness for libclang itself to mostly be a wrapper of functionality provided by the libraries. llvm-svn: 260760
* [WebAssembly] Report more meaningful error messages for some unsupportedDerek Schuff2016-02-122-4/+17
| | | | | | | | | ops. Computed gotos and RETURNADDR may never be supported; we can do FRAMEADDR in the future. llvm-svn: 260759
* [Hexagon] Optimize stack slot spillsKrzysztof Parzyszek2016-02-1210-6/+1442
| | | | | | | | | | | | | | Replace spills to memory with spills to registers, if possible. This applies mostly to predicate registers (both scalar and vector), since they are very limited in number. A spill of a predicate register may happen even if there is a general-purpose register available. In cases like this the stack spill/reload may be eliminated completely. This optimization will consider all stack objects, regardless of where they came from and try to match the live range of the stack slot with a dead range of a register from an appropriate register class. llvm-svn: 260758
* Fix remaining Clang-tidy readability-redundant-control-flow warnings; other ↵Eugene Zelenko2016-02-1214-213/+110
| | | | | | | | minor fixes. Differential revision: http://reviews.llvm.org/D17218 llvm-svn: 260757
* Darwin: pass -stdlib=libc++ down to cc1 whenever we're targeting libc++Tim Northover2016-02-122-0/+22
| | | | | | | Recent refactoring meant it only got passed down when explicitly specified, which breaks header search on Darwin. llvm-svn: 260755
* [llvm-pdbdump] Start to decode some streamsDavid Majnemer2016-02-122-29/+278
| | | | | | We can decode a little bit of the first stream now. llvm-svn: 260754
* [Hexagon] Mark HVX registers as volatileKrzysztof Parzyszek2016-02-121-1/+7
| | | | llvm-svn: 260753
* Data formatter support for libc++ std::atomic<T>Enrico Granata2016-02-129-5/+245
| | | | | | | | | | On libc++ std::atomic is a fairly simple data type (layout wise, at least), wrapping actual contents in a member variable named "__a_" All the formatters are doing is "peel away" this intermediate layer and exposing user data as direct children or values of the std::atomic root variable Fixes rdar://24329405 llvm-svn: 260752
* fix test to use FileCheckSanjay Patel2016-02-121-3/+6
| | | | llvm-svn: 260751
* [WebAssembly] Update test expectations after r260737Derek Schuff2016-02-121-13/+1
| | | | llvm-svn: 260750
* Fix MemorySanitizer.ptrtoint test on big-endian targets.Evgeniy Stepanov2016-02-121-6/+12
| | | | llvm-svn: 260749
* [Hexagon] Recognize more cases in copyPhysReg and stack slot load/storeKrzysztof Parzyszek2016-02-121-51/+105
| | | | llvm-svn: 260748
* Disable recognition of "using" declarations at translation-unit level.Sean Callanan2016-02-121-0/+9
| | | | | | | | | | | | | | | Currently CountDeclLevels uses the ASTs which have no distinction between separate translation units. If one .o file has a "using" declaration at translation unit level, that "using" declaration will be in the same translation unit as functions from other .o files in the same module. This leads to erroneous name conflicts as the CountDeclLevels-based function filtering logic accepts too many fucntions. In the future we will identify the translation units for top-level Decls more reliably and restore that functionality. There's a TODO to that effect in the code. llvm-svn: 260747
* [codeview] Describe local variables in registersReid Kleckner2016-02-123-51/+516
| | | | llvm-svn: 260746
* ELF: Add wildcard pattern matching to SECTIONS linker script command.Rui Ueyama2016-02-124-20/+98
| | | | | | | | | | | | | | | | | | | | Each rule in SECTIONS commands is something like ".foo *(.baz.*)", which instructs the linker to collect all sections whose name matches ".baz.*" from all files and put them into .foo section. Previously, we didn't recognize the wildcard character. This patch adds that feature. Performance impact is a bit concerning because a linker script can contain hundreds of SECTIONS rules, and doing pattern matching against each rule would be too expensive. We could merge all patterns into single DFA so that it takes O(n) to the input size. However, it is probably too much at this moment -- we don't know whether the performance of pattern matching matters or not. So I chose to implement the simplest algorithm in this patch. I hope this simple pattern matcher is sufficient. llvm-svn: 260745
* [CMake] Fixing bots I broke.Chris Bieneman2016-02-121-1/+1
| | | | llvm-svn: 260744
* Trying to fix the MSVC build.Rafael Espindola2016-02-121-4/+4
| | | | llvm-svn: 260743
* [CMake] Improve the clang order-file generation workflowChris Bieneman2016-02-123-11/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This commit re-lands r259862. The underlying cause of the build breakage was an incorrectly written capabilities test. In tools/Driver/CMakeLists.txt I was attempting to check if a linker flag worked, the test was passing it to the compiler, not the linker. CMake doesn't have a linker test, so we have a hand-rolled one. Original Patch Review: http://reviews.llvm.org/D16896 Original Summary: With this change generating clang order files using dtrace uses the following workflow: cmake <whatever options you want> ninja generate-order-file ninja clang This patch works by setting a default path to the order file (which can be overridden by the user). If the order file doesn't exist during configuration CMake will create an empty one. CMake then ties up the dependencies between the clang link job and the order file, and generate-order-file overwrites CLANG_ORDER_FILE with the new order file. Reviewers: bogner Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D16999 llvm-svn: 260742
OpenPOWER on IntegriCloud