- Jul 08, 2013
-
-
Stephen Lin authored
llvm-svn: 185780
-
David Majnemer authored
Sema::MergeFunctionDecl attempts merging two decls even if the old decl is invalid. This can lead to interesting circumstances where we successfully merge the decls but the result makes no sense. Take the following for example: template <typename T> int main(void); int main(void); Sema will not consider these to be overloads of the same name because main can't be overloaded, which means that this must be a redeclaration. In this case the templated decl is compatible with the non-templated decl allowing the Sema::CheckFunctionDeclaration machinery to move on and do bizarre things like setting the previous decl of a non-templated decl to a templated decl! The way I see it, we should just bail from MergeFunctionDecl if the old decl is invalid. This fixes PR16531. llvm-svn: 185779
-
- Jul 07, 2013
-
-
Nico Rieck authored
llvm-svn: 185778
-
Nadav Rotem authored
llvm-svn: 185777
-
Nick Lewycky authored
pointer arguments. llvm-svn: 185776
-
Nick Lewycky authored
since it has no callers today. llvm-svn: 185775
-
Nadav Rotem authored
This is a complete re-write if the bottom-up vectorization class. Before this commit we scanned the instruction tree 3 times. First in search of merge points for the trees. Second, for estimating the cost. And finally for vectorization. There was a lot of code duplication and adding the DCE exposed bugs. The new design is simpler and DCE was a part of the design. In this implementation we build the tree once. After that we estimate the cost by scanning the different entries in the constructed tree (in any order). The vectorization phase also works on the built tree. llvm-svn: 185774
-
Enea Zaffanella authored
Added testcases. llvm-svn: 185773
-
Richard Smith authored
case inspired by a stackoverflow question. llvm-svn: 185772
-
James Dennett authored
* Fix up \brief documentation; * Update C++0x references to C++11; * Doxygen formatting: bulleted lists start with a single hyphen, not two; * Fix a typo, "assosiate" -> "associate". llvm-svn: 185771
-
Michael Gottesman authored
Upon further reflection, the alias analysis part of r185764 is not a safe change. llvm-svn: 185770
-
Michael Gottesman authored
[objc-arc] Teach the ARC optimizer that objc_sync_enter/objc_sync_exit do not modify the ref count of an objc object and additionally are inert for modref purposes. llvm-svn: 185769
-
- Jul 06, 2013
-
-
Stephen Lin authored
llvm-svn: 185768
-
Joey Gouly authored
llvm-svn: 185767
-
Benjamin Kramer authored
I wish we could typecheck llvm::format. llvm-svn: 185766
-
Enea Zaffanella authored
llvm-svn: 185765
-
Michael Gottesman authored
[objc-arc] When we initialize ARCRuntimeEntryPoints, make sure we reset all references to entrypoint declarations as well. llvm-svn: 185764
-
Nico Rieck authored
llvm-svn: 185763
-
Fariborz Jahanian authored
// rdar://14182680. llvm-svn: 185762
-
Kai Nacke authored
Obviously the personality function should be emitted as language handler instead of the hard coded _GCC_specific_handler. The language specific data must be placed after the unwind information therefore it must not be emitted into a separate section. Reviewed by Charles Davis and Nico Rieck. llvm-svn: 185761
-
Kai Nacke authored
For alignment purposes, the instruction array will always have an even number of entries, with the final entry potentially unused (in which case the array will be one longer than indicated by the count of unwind codes field). Reviewed by Charles Davis and Nico Rieck. llvm-svn: 185760
-
Kai Nacke authored
data structures. The Win64 EH data structures must be of type IMAGE_REL_AMD64_ADDR32NB instead of IMAGE_REL_AMD64_ADDR32. This is easiely achieved by adding the VK_COFF_IMGREL32 modifier to the symbol reference. Change also references to start and end of the SEH range of a function as offsets to start of the function. Reviewed by Charles Davis and Nico Rieck. llvm-svn: 185759
-
Kai Nacke authored
The code offset for unwind code SET_FPREG is wrong because it is set to constant 0. The fix is to do the same as for the other unwind codes: emit a label and later the absolute difference between the label and the begin of the prologue. Also enables the failing test case MC/COFF/seh.s Reviewed by Charles Davis and Nico Rieck. llvm-svn: 185758
-
Benjamin Kramer authored
llvm-svn: 185757
-
Howard Hinnant authored
llvm-svn: 185756
-
Benjamin Kramer authored
ReduceLoadWidth unconditionally drops extensions from loads. Limit it to the case when all of the bits the extension would otherwise produce are dropped by the shrink. It would be possible to shrink the load in more cases by merging the extensions, but this isn't trivial and a very rare case. I left a TODO for that case. Fixes PR16551. llvm-svn: 185755
-
Tim Northover authored
This prevents the emission of DAG-generated vreg definitions after a tail call be dropping them entirely (on the grounds that nothing could use them anyway, and they interfere with O0 CodeGen). llvm-svn: 185754
-
Nico Rieck authored
llvm-svn: 185753
-
Sylvestre Ledru authored
llvm-svn: 185752
-
Michael Gottesman authored
llvm-svn: 185751
-
David Majnemer authored
llvm-svn: 185748
-
Michael Gottesman authored
[objc-arc] Performed some small cleanups in ARCRuntimeEntryPoints and added an llvm_unreachable after the switch to quiet -Wreturn_type errors. llvm-svn: 185746
-
David Majnemer authored
This boils down to us sending invalid function decls to CheckFunctionDeclaration becauswe we did not consider that CheckMain could cause the decl to be invalid. Instead, interogate the new decl's main-validity and *then* send it over to get CheckFunctionDeclaration'd if it was still valid after calling CheckMain. llvm-svn: 185745
-
Michael Gottesman authored
This fixes an issue that came up due to -fpermissive on the bots. llvm-svn: 185744
-
Michael Gottesman authored
llvm-svn: 185743
-
Michael Gottesman authored
llvm-svn: 185742
-
Michael Gottesman authored
llvm-svn: 185741
-
Michael Gottesman authored
This is the first patch in a series of 3 patches which clean up how we create runtime function declarations in the ARC optimizer when they do not exist already in the IR. Currently we have a bunch of duplicated code in ObjCARCOpts, ObjCARCContract that does this. This patch refactors that code into a separate class called ARCRuntimeEntryPoints which lazily creates the declarations for said entrypoints. The next two patches will consist of the work of refactoring ObjCARCContract/ObjCARCOpts to use this new code. llvm-svn: 185740
-
Nick Lewycky authored
llvm-svn: 185739
-
Nick Lewycky authored
llvm-svn: 185738
-