- Mar 26, 2013
-
-
Bill Wendling authored
llvm-svn: 177953
-
Michael Gottesman authored
[ObjCARC Annotations] Added support for displaying the state of pointers at the bottom/top of BBs of the ARC dataflow analysis for both bottomup and topdown analyses. This will allow for verification and analysis of the merge function of the data flow analyses in the ARC optimizer. The actual implementation of this feature is by introducing calls to the functions llvm.arc.annotation.{bottomup,topdown}.{bbstart,bbend} which are only declared. Each such call takes in a pointer to a global with the same name as the pointer whose provenance is being tracked and a pointer whose name is one of our Sequence states and points to a string that contains the same name. To ensure that the optimizer does not consider these annotations in any way, I made it so that the annotations are considered to be of IC_None type. A test case is included for this commit and the previous ObjCARCAnnotation commit. llvm-svn: 177952
-
Michael Gottesman authored
[ObjCARC Annotations] Implemented ARC annotation metadata to expose the ARC data flow analysis state in the IR via metadata. Previously the inner works of the data flow analysis in ObjCARCOpts was hard to get out of the optimizer for analysis of bugs or testing. All of the current ARC unit tests are based off of testing the effect of the data flow analysis (i.e. what statements are removed or moved, etc.). This creates weakness in the current unit testing regimem since we are not actually testing what effects various instructions have on the modeled pointer state. Additionally in order to analyze a bug in the optimizer, one would need to track by hand what the optimizer was actually doing either through use of DEBUG statements or through the usage of a debugger, both yielding large loses in developer productivity. This patch deals with these two issues by providing ARC annotation metadata that annotates instructions with the state changes that they cause in various pointers as well as provides metadata to annotate provenance sources. Specifically, we introduce the following metadata types: 1. llvm.arc.annotation.bottomup. 2. llvm.arc.annotation.topdown. 3. llvm.arc.annotation.provenancesource. llvm.arc.annotation.{bottomup,topdown}: These annotations describes a state change in a pointer when we are visiting instructions bottomup/topdown respectively. The output format for both is the same: !1 = metadata !{metadata !"(test,%x)", metadata !"S_Release", metadata !"S_Use"} The first element is a string tuple with the following format: (function,variable name) The second two elements of the metadata show the previous state of the pointer (in this case S_Release) and the new state of the pointer (S_Use). We write the metadata in such a manner to ensure that it is easy for outside tools to parse. This is important since I am currently working on a tool for taking this information and pretty printing it besides the IR and that can be used for LIT style testing via the generation of an index. llvm.arc.annotation.provenancesource: This metadata is used to annotate instructions which act as provenance sources, i.e. ones that introduce a new (from the optimizer's perspective) non-argument pointer to track. This enables cross-referencing in between provenance sources and the state changes that occur to them. This is still a work in progress. Additionally I plan on committing later today additions to the annotations that annotate at the top/bottom of basic blocks the state of the various pointers being tracked. *NOTE* The metadata support is conditionally compiled into libObjCARCOpts only when we are producing a debug build of llvm/clang and even so are disabled by default. To enable the annotation metadata, pass in -enable-objc-arc-annotations to opt. llvm-svn: 177951
-
Michael Gottesman authored
Added documentation to LangRef for the intrinsic llvm.ptr.annotation.* which for some reason was never written. llvm-svn: 177950
-
Enrico Granata authored
Checking that the wrong syntax does not give a correct summary after clearing the error messages here llvm-svn: 177949
-
Fariborz Jahanian authored
its super class or protocols inherit their availability/deprecated attribute. // rdar://13467644 llvm-svn: 177948
-
Michael Liao authored
- It's still considered aligned when the specified alignment is larger than the natural alignment; - The new alignment for the high 128-bit vector should be min(16, alignment) as the pointer is advanced by 16, a power-of-2 offset. llvm-svn: 177947
-
NAKAMURA Takumi authored
I know MemoryBuffer might affect this. Still investigating. llvm-svn: 177946
-
Michael Liao authored
- Handle the case where the result of 'insert_subvect' is bitcasted before 'extract_subvec'. This removes the redundant insertf128/extractf128 pair on unaligned 256-bit vector load/store on vectors of non 64-bit integer. llvm-svn: 177945
-
rdar://problem/13395022Douglas Gregor authored
<rdar://problem/13395022> Strip references when extracting an initializer_list's element type during application of an initialization sequence. llvm-svn: 177944
-
Jakob Stoklund Olesen authored
This should fix the clang-atom-d2700-ubuntu-rel buildbot. llvm-svn: 177943
-
Jakob Stoklund Olesen authored
The model isn't hooked up by this patch because the instruction set isn't fully annotated yet. llvm-svn: 177942
-
rdar://problem/13185264Douglas Gregor authored
<rdar://problem/13185264> Don't crash when attempting to redundantly initialize a member of an anonymous union. llvm-svn: 177941
-
Matt Beaumont-Gay authored
llvm-svn: 177940
-
rdar://problem/13358795Douglas Gregor authored
<rdar://problem/13358795> Teach CMake to check Subversion version information at build time, not configure time. llvm-svn: 177939
-
Douglas Gregor authored
Introduce a tiny CMake project to gather Subversion revision information and place it into a header. llvm-svn: 177938
-
Jakob Stoklund Olesen authored
All the instructions tagged with IIC_DEFAULT had nothing in common, and we already have a NoItineraries class to represent untagged instructions. llvm-svn: 177937
-
Jakob Stoklund Olesen authored
llvm-svn: 177936
-
Jakob Stoklund Olesen authored
llvm-svn: 177935
-
Ted Kremenek authored
llvm-svn: 177934
-
- Mar 25, 2013
-
-
Shuxin Yang authored
For instance, following transformation will be disabled: x + x + x => 3.0f * x; The problem of these transformations is that it introduces a FP constant, which following Instruction-Selection pass cannot handle. Reviewed by Nadav, thanks a lot! rdar://13445387 llvm-svn: 177933
-
Greg Clayton authored
llvm-svn: 177932
-
Ted Kremenek authored
Fixes <rdar://problem/13491605>. llvm-svn: 177931
-
rdar://problem/13459871Douglas Gregor authored
<rdar://problem/13459871> Allow forward declaration of enums with a fixed underlying type in Objective-C (as well as C++11). llvm-svn: 177930
-
Howard Hinnant authored
Added debug tests for indexing, pop_back and both forms of erase. Added an improved error message for erasing a single element with end(). llvm-svn: 177929
-
-
Timur Iskhodzhanov authored
llvm-svn: 177927
-
Greg Clayton authored
Fix the buildbot so a LLDB test doesn't fail looking for "<invalid usage of pointer value as object>". llvm-svn: 177926
-
Douglas Gregor authored
llvm-svn: 177925
-
Douglas Gregor authored
llvm-svn: 177924
-
Douglas Gregor authored
llvm-svn: 177923
-
Matt Beaumont-Gay authored
llvm-svn: 177922
-
Douglas Gregor authored
llvm-svn: 177921
-
Eric Christopher authored
llvm-svn: 177920
-
Nick Lewycky authored
difference is that we no longer clean the token before emitting it. This fixes a bug where clang hangs in the middle of crashing because the crash handler calls malloc from inside a crash that happened inside of free. llvm-svn: 177919
-
-
Jyotsna Verma authored
llvm-svn: 177917
-
Nick Lewycky authored
llvm-svn: 177916
-
Bill Wendling authored
If the ASM statement is dereferencing an incomplete pointer type, issue an error instead of crashing. <rdar://problem/12700799> llvm-svn: 177915
-
NAKAMURA Takumi authored
I know it is incorrect and they'd fail with +Asserts for win32 targets, though. I'll try to fix them tonight. llvm-svn: 177914
-