summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Teach InstCombineLoadCast about address spaces.Matt Arsenault2013-09-032-3/+24
| | | | | | | | This is another one that doesn't matter much, but uses the right GEP index types in the first place. llvm-svn: 189854
* Use type form of getIntPtrType in alloca visitor.Matt Arsenault2013-09-031-2/+2
| | | | | | | This doesn't actually matter, since alloca is always 0 address space, but this is more consistent. llvm-svn: 189853
* Don't emit an available_externally vtable pointing to linkonce_odr funcs.Rafael Espindola2013-09-034-57/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes pr13124. From the discussion at http://lists.cs.uiuc.edu/pipermail/cfe-dev/2012-June/022606.html we know that we cannot make funcions in a weak_odr vtable also weak_odr. They should remain linkonce_odr. The side effect is that we cannot emit a available_externally vtable unless we also emit a copy of the function. This also has an issue: If codegen is going to output a function, sema has to mark it used. Given llvm.org/pr9114, it looks like sema cannot be more aggressive at marking functions used because of vtables. This leaves us with a few unpleasant options: * Marking functions in vtables used if possible. This sounds a bit sloppy, so we should avoid it. * Producing available_externally vtables only when all the functions in it are already used or weak_odr. This would cover cases like -------------------- struct foo { virtual ~foo(); }; struct bar : public foo { virtual void zed(); }; void f() { foo *x(new bar); delete x; } void g(bar *x) { x->~bar(); // force the destructor to be used } -------------------------- and ---------------------------------- template<typename T> struct bar { virtual ~bar(); }; template<typename T> bar<T>::~bar() { } // make the destructor weak_odr instead of linkonce_odr extern template class bar<int>; void f() { bar<int> *x(new bar<int>); delete x; } ---------------------------- These look like corner cases, so it is unclear if it is worth it. * And finally: Just nuke this optimization. That is what this patch implements. llvm-svn: 189852
* Switched FormatAttr to using an IdentifierArgument instead of a ↵Aaron Ballman2013-09-038-16/+24
| | | | | | StringArgument since that is a more accurate modeling. llvm-svn: 189851
* Refactor computation of whether a variable declaration's type should be mergedRichard Smith2013-09-032-41/+36
| | | | | | with a prior declaration. No functionality change intended. llvm-svn: 189850
* WIP: Refactor some code so that it can be called by more than just one ↵Bill Wendling2013-09-031-60/+71
| | | | | | method. No functionality change. llvm-svn: 189849
* Alphabetize.Eric Christopher2013-09-031-4/+4
| | | | llvm-svn: 189848
* Finish -rpath implementation to actually create the DT_RPATH entries.Joerg Sonnenberger2013-09-034-2/+30
| | | | llvm-svn: 189847
* Add a Python-like join function to merge a list of strings with aJoerg Sonnenberger2013-09-032-0/+70
| | | | | | separator between each two elements. llvm-svn: 189846
* Fix non-void return warning, and format.Eric Christopher2013-09-031-3/+4
| | | | llvm-svn: 189845
* Remove unused typedef.Eric Christopher2013-09-031-1/+0
| | | | llvm-svn: 189844
* Consumed analysis: add return_typestate attribute.DeLesley Hutchins2013-09-039-56/+275
| | | | | | | | | | Patch by chris.wailes@gmail.com Functions can now declare what state the consumable type the are returning will be in. This is then used on the caller side and checked on the callee side. Constructors now use this attribute instead of the 'consumes' attribute. llvm-svn: 189843
* ARM: Update testcases for improved codegen.Jim Grosbach2013-09-031-3/+3
| | | | | | From llvm r189841. llvm-svn: 189842
* Revert "Revert "ARM: Improve pattern for isel mul of vector by scalar.""Jim Grosbach2013-09-032-0/+29
| | | | | | | | | This reverts commit r189648. Fixes for the previously failing clang-side arm_neon_intrinsics test cases will be checked in separately. llvm-svn: 189841
* Add the rest of the stock attributes to the attribute table.Eric Christopher2013-09-033-8/+242
| | | | | | | | This won't affect the kinds of hashes we test for as we actually do hashing based on form and attribute. Change the fission-hash testcase one last time to handle DW_AT_comp_dir. llvm-svn: 189840
* TableGen: Enumerate Schedule Model too.Vincent Lejeune2013-09-032-1/+14
| | | | llvm-svn: 189839
* Update GCC attribute argument parsing comment to better reflect what's going onRichard Smith2013-09-031-12/+15
| | | | | | here. llvm-svn: 189838
* Added header dependencies support.John Thompson2013-09-034-29/+143
| | | | llvm-svn: 189837
* Ran clang-format for a base-line.John Thompson2013-09-032-19/+15
| | | | llvm-svn: 189836
* Undo r189834 - broke test.John Thompson2013-09-034-22/+20
| | | | llvm-svn: 189835
* Ran clang-format.John Thompson2013-09-034-20/+22
| | | | llvm-svn: 189834
* Factor out parsing and allocation of IdentifierLoc objects.Richard Smith2013-09-034-13/+24
| | | | llvm-svn: 189833
* Rename clang-replace -> clang-apply-replacementsEdwin Vane2013-09-0331-53/+53
| | | | | | | | Made changes throughout clang-tools-extra for the renaming of clang-replace to clang-apply-replacements as per feedback from community. llvm-svn: 189832
* LWG Issue 2148: Hashing EnumsMarshall Clow2013-09-034-1/+104
| | | | llvm-svn: 189831
* In this patch we are trying to do two things:Yi Jiang2013-09-034-24/+177
| | | | | | | | | 1) If the width of vectorization list candidate is bigger than vector reg width, we will break it down to fit the vector reg. 2) We do not vectorize the width which is not power of two. The performance result shows it will help some spec benchmarks. mesa improved 6.97% and ammp improved 1.54%. llvm-svn: 189830
* Print string value for DT_RPATH and DT_RUNPATH.Joerg Sonnenberger2013-09-033-0/+8
| | | | llvm-svn: 189829
* Add an implicit dtor CFG node just before C++ 'delete' expressions.Jordan Rose2013-09-036-0/+134
| | | | | | | | | | | | | | This paves the way for adding support for modeling the destructor of a region before it is deleted. The statement "delete <expr>" now generates this series of CFG elements: 1. <expr> 2. [B1.1]->~Foo() (Implicit destructor) 3. delete [B1.1] Patch by Karthik Bhat! llvm-svn: 189828
* Set the byte order for data in the GDB remote register context.Greg Clayton2013-09-031-1/+1
| | | | llvm-svn: 189827
* Add support for --sysroot.Joerg Sonnenberger2013-09-035-3/+37
| | | | llvm-svn: 189826
* [MC] Revert part of my previous change, I was a bit overzealous.Joey Gouly2013-09-031-3/+3
| | | | | | A change to test the previous commit will be coming soon. llvm-svn: 189825
* Migrate the DWARF_VERSION constant to 4. It largely needs to go away.Eric Christopher2013-09-031-1/+1
| | | | llvm-svn: 189824
* Attempt to migrate default dwarf version to 4 for linux.Eric Christopher2013-09-032-3/+3
| | | | llvm-svn: 189823
* Pass -target instead of using "REQUIRES: clang-driver".Rafael Espindola2013-09-031-5/+2
| | | | llvm-svn: 189822
* [asan] Hopefully un-break the RTL on WindowsTimur Iskhodzhanov2013-09-031-1/+2
| | | | llvm-svn: 189821
* Revert part of my previous patch, we should be using libedit underEric Christopher2013-09-031-1/+1
| | | | | | linux for command line editing. llvm-svn: 189820
* [SystemZ] Add support for TMHH, TMHL, TMLH and TMLLRichard Sandiford2013-09-033-8/+459
| | | | | | | | | For now this just handles simple comparisons of an ANDed value with zero. The CC value provides enough information to do any comparison for a 2-bit mask, and some nonzero comparisons with more populated masks, but that's all future work. llvm-svn: 189819
* First step towards correctly formatting lambdas.Manuel Klimek2013-09-033-2/+124
| | | | | | | | | | Implements parsing of lambdas in the UnwrappedLineParser. This introduces the correct line breaks; the formatting of lambda captures are still incorrect, and the braces are also still formatted as if they were braced init lists instead of blocks. llvm-svn: 189818
* [asan] Hopefully fix the RTL build on Windows (part 2)Timur Iskhodzhanov2013-09-031-2/+2
| | | | llvm-svn: 189817
* tsan: catch races on condition variablesDmitry Vyukov2013-09-033-0/+95
| | | | llvm-svn: 189816
* [MC] AvailableFeatures needs to be a uint64_t to match FeatureBits in ↵Joey Gouly2013-09-032-6/+6
| | | | | | MCSubtargetInfo. llvm-svn: 189815
* [asan] attemping to fix the Windows buildKostya Serebryany2013-09-031-11/+11
| | | | llvm-svn: 189814
* Remove useless reinterpret_casts from Stmt.cppPavel Labath2013-09-031-9/+9
| | | | | | | | | | | | | | Summary: I have no idea why these were there in the first place, but now they are certainly not necessary. Reviewers: rsmith CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1581 llvm-svn: 189813
* Updated the synopsis for weak_ptr<T>::owner_before to match the code. No ↵Marshall Clow2013-09-031-2/+2
| | | | | | code changes. llvm-svn: 189812
* Revert "OpenMP: Data-sharing attributes analysis and clause 'shared'"Rafael Espindola2013-09-0326-904/+37
| | | | | | | | This reverts commit r189795. threadprivate_messages.cpp is faling on windows. llvm-svn: 189811
* Revert r185536 as it neither fixes any memory leaks, nor is it necessary ↵Timur Iskhodzhanov2013-09-031-1/+0
| | | | | | (see the example from "man pthread_getattr_np") llvm-svn: 189810
* Fix a typo in the status for <optional>Marshall Clow2013-09-031-1/+1
| | | | llvm-svn: 189809
* Eradicate tabsMarshall Clow2013-09-032-6/+6
| | | | llvm-svn: 189808
* Disable this on mingw again.Rafael Espindola2013-09-031-0/+3
| | | | | | I will investigate why it still fails, but for now this gets the bots green. llvm-svn: 189807
* implement PR17059: more visible diagnostics for stack-buffer-overflowKostya Serebryany2013-09-033-3/+105
| | | | llvm-svn: 189806
* Remove unused group.Rafael Espindola2013-09-031-1/+0
| | | | llvm-svn: 189805
OpenPOWER on IntegriCloud