summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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
* [PGO] Add another interface for annotateValueSiteRong Xu2016-02-123-0/+34
| | | | | | | | | Add another interface to function annotateValueSite() which directly uses the VauleData array. Differential Revision: http://reviews.llvm.org/D17108 llvm-svn: 260741
* [WebAssembly] Fix byval for empty types.Dan Gohman2016-02-122-2/+20
| | | | llvm-svn: 260740
* [AArch64] Enable post-RA MI scheduler for Kryo.Chad Rosier2016-02-121-1/+1
| | | | | | This should have landed in r260686. llvm-svn: 260739
* [WebAssembly] Fix insertion of a BLOCK in a loop header that also ends a BLOCK.Dan Gohman2016-02-122-1/+65
| | | | llvm-svn: 260737
* Try to fix the build in some bots.Rafael Espindola2016-02-121-12/+15
| | | | llvm-svn: 260736
* IRInterpreter now recognizes expressions with constants it doesn't handle.Sean Callanan2016-02-121-0/+50
| | | | | | | | | | | | | If an instruction has a constant that IRInterpreter doesn't know how to deal with (say, an array constant, because we can't materialize it to APInt) then we used to ignore that and only fail during expression execution. This is annoying because if IRInterpreter had just returned false from CanInterpret(), the JIT would have been used. Now the IRInterpreter checks constants as part of CanInterpret(), so this should hopefully no longer be an issue. llvm-svn: 260735
* Centralized symbol lookup in IRExecutionUnit, and fixed the code model.Sean Callanan2016-02-123-70/+348
| | | | | | | | | | | | | I'm preparing to remove symbol lookup from IRForTarget, where it constitutes a dreadful hack working around no-longer-existing JIT bugs. Thanks to our contributors, IRForTarget has a lot of smarts that IRExecutionUnit doesn't have, so I've cleaned them up a bit and moved them over to IRExecutionUnit. Also for historical reasons, IRExecutionUnit used the "Small" code model on non- ELF platforms (namely, OS X). That's no longer necessary, and we can use the same code model as everyone else on OS X. I've fixed that. llvm-svn: 260734
* [WinEH] Prevent EH state numbering from skipping nested cleanup pads that ↵Andrew Kaylor2016-02-122-6/+94
| | | | | | | | never return Differential Revision: http://reviews.llvm.org/D17208 llvm-svn: 260733
* [LIR] Allow merging of memsets in negatively strided loops.Chad Rosier2016-02-122-5/+40
| | | | | | Last part of PR25166. llvm-svn: 260732
* Fix typo in comment.Justin Lebar2016-02-121-1/+1
| | | | llvm-svn: 260731
* [SimplifyCFG] Don't fold conditional branches that contain calls to ↵Justin Lebar2016-02-122-14/+34
| | | | | | | | | | | | | | | | convergent functions. Summary: Performing this optimization duplicates the call to the convergent function and adds new control-flow dependencies, which is a no-no. Reviewers: jingyue Subscribers: broune, hfinkel, tra, resistor, joker.eph, arsenm, llvm-commits, mzolotukhin Differential Revision: http://reviews.llvm.org/D17128 llvm-svn: 260730
* [LoopRotate] Don't perform loop rotation if the loop header calls a ↵Justin Lebar2016-02-122-0/+36
| | | | | | | | | | | | | | | | | convergent function. Summary: Calls to convergent functions can be duplicated, but only if the duplicates are not control-flow dependent on any additional values. Loop rotation doesn't meet the bar. Reviewers: jingyue Subscribers: mzolotukhin, llvm-commits, arsenm, joker.eph, resistor, tra, hfinkel, broune Differential Revision: http://reviews.llvm.org/D17127 llvm-svn: 260729
* Add convergent property to CodeMetrics.Justin Lebar2016-02-122-1/+7
| | | | | | | | | | | | Summary: No functional changes. Reviewers: jingyue, arsenm Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D17126 llvm-svn: 260728
* Initialize CodeMetrics' member variables inline with definitions.Justin Lebar2016-02-121-15/+10
| | | | | | | | | | | | Summary: No functional changes. Reviewers: jingyue Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D17125 llvm-svn: 260727
OpenPOWER on IntegriCloud