| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
|
|
| |
1. Moved a comment from ObjCARCOpts.cpp -> ObjCARCContract.cpp.
2. Removed a comment from ObjCARCOpts.cpp that was already moved to
ObjCARCAliasAnalysis.h/.cpp.
llvm-svn: 174581
|
| |
|
|
| |
llvm-svn: 174571
|
| |
|
|
| |
llvm-svn: 174438
|
| |
|
|
| |
llvm-svn: 174432
|
| |
|
|
|
|
| |
Found by running instcombine on a fabricated test case for the constant folder.
llvm-svn: 174430
|
| |
|
|
|
|
|
| |
Introduce a helper class that computes the cost of memory access instructions.
No functionality change intended.
llvm-svn: 174422
|
| |
|
|
|
|
|
| |
edge is critical, then split it so we can insert the store.
rdar://13126179
llvm-svn: 174418
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the loop vectorizer cost model, we used to ignore stores/loads of a pointer
type when computing the widest type within a loop. This meant that if we had
only stores/loads of pointers in a loop we would return a widest type of 8bits
(instead of 32 or 64 bit) and therefore a vector factor that was too big.
Now, if we see a consecutive store/load of pointers we use the size of a pointer
(from data layout).
This problem occured in SingleSource/Benchmarks/Shootout-C++/hash.cpp (reduced
test case is the first test in vector_ptr_load_store.ll).
radar://13139343
llvm-svn: 174377
|
| |
|
|
| |
llvm-svn: 174241
|
| |
|
|
|
|
|
|
|
| |
says, but that's a defect (to be filed). "Cls::purevfn()" is still an odr use.
Also fixes a bug in the previous patch that caused us to not mark the function
referenced just because we didn't want to mark it odr used.
llvm-svn: 174240
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
the SCEV vector size in LoopStrengthReduce. It is observed that
the BaseRegs vector size is 4 in most cases,
and elements are frequently copied when it is initialized as
SmallVector<const SCEV *, 2> BaseRegs.
Our benchmark results show that the compilation time performance
improved by ~0.5%.
Patch by Wan Xiaofei.
llvm-svn: 174219
|
| |
|
|
|
|
| |
transformation is illegal.
llvm-svn: 174156
|
| |
|
|
| |
llvm-svn: 174152
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a re-worked version of r174048.
Given source IR:
call void @llvm.dbg.declare(metadata !{i32* %argc.addr}, metadata !14), !dbg !15
we used to generate
call void @llvm.dbg.declare(metadata !27, metadata !28), !dbg !29
!27 = metadata !{null}
With this patch, we will correctly generate
call void @llvm.dbg.declare(metadata !{i32* %argc.addr}, metadata !27), !dbg !28
Looking up %argc.addr in ValueMap will return null, since %argc.addr is already
correctly set up, we can use identity mapping.
rdar://problem/13089880
llvm-svn: 174093
|
| |
|
|
| |
llvm-svn: 174048
|
| |
|
|
|
|
|
| |
reference to a pointer, so that it can handle the case where DataLayout
is not available and behave conservatively.
llvm-svn: 174024
|
| |
|
|
| |
llvm-svn: 173992
|
| |
|
|
|
|
|
| |
There are still places which treat the Attribute object as a collection of
attributes. I'm systematically removing them.
llvm-svn: 173990
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Given source IR:
call void @llvm.dbg.declare(metadata !{i32* %argc.addr}, metadata !14), !dbg !15
we used to generate
call void @llvm.dbg.declare(metadata !27, metadata !28), !dbg !29
!27 = metadata !{null}
With this patch, we will correctly generate
call void @llvm.dbg.declare(metadata !{i32* %argc.addr}, metadata !27), !dbg !28
Looking up %argc.addr in ValueMap will return null, since %argc.addr is already
correctly set up, we can use identity mapping.
llvm-svn: 173946
|
| |
|
|
|
|
|
|
| |
sext-not-and --> select.
Patch by Muhammad Tauqir Ahmad.
llvm-svn: 173901
|
| |
|
|
| |
llvm-svn: 173842
|
| |
|
|
|
|
| |
to a command line switch.
llvm-svn: 173837
|
| |
|
|
| |
llvm-svn: 173836
|
| |
|
|
| |
llvm-svn: 173834
|
| |
|
|
| |
llvm-svn: 173832
|
| |
|
|
|
|
| |
type Sequence so I can print out Sequences in debug statements.
llvm-svn: 173831
|
| |
|
|
|
|
| |
perform escape analysis of other retainable object pointers in other locations.
llvm-svn: 173829
|
| |
|
|
|
|
|
| |
Fixed set-but-not-used warnings.
Reviewer: gribozavr
llvm-svn: 173810
|
| |
|
|
|
|
| |
No intended functionality change.
llvm-svn: 173809
|
| |
|
|
| |
llvm-svn: 173781
|
| |
|
|
| |
llvm-svn: 173774
|
| |
|
|
| |
llvm-svn: 173773
|
| |
|
|
|
|
| |
declaration.
llvm-svn: 173772
|
| |
|
|
| |
llvm-svn: 173770
|
| |
|
|
|
|
|
| |
actually have DEBUG statements. Also changed raw_ostream in said header
to be a forward declaration (removing an include).
llvm-svn: 173769
|
| |
|
|
| |
llvm-svn: 173767
|
| |
|
|
|
|
|
|
| |
This was missed since whenever I was including ObjCARCAliasAnalysis.h, I
was including ObjCARC.h before it which included these includes
(resulting in no compilation breakage).
llvm-svn: 173764
|
| |
|
|
|
|
| |
they are unnecessary.
llvm-svn: 173763
|
| |
|
|
|
|
|
|
| |
This also required adding 2x headers Dependency Analysis.h/Provenance Analysis.h
and a .cpp file DependencyAnalysis.cpp to unentangle the dependencies inbetween
ObjCARCContract and ObjCARCOpts.
llvm-svn: 173760
|
| |
|
|
| |
llvm-svn: 173759
|
| |
|
|
|
|
|
|
| |
Because BBVectorize may significantly shorten a loop body, unroll
again after vectorization. This is especially important when using
runtime or partial unrolling.
llvm-svn: 173730
|
| |
|
|
| |
llvm-svn: 173691
|
| |
|
|
|
|
|
|
| |
It is way too slow. Change the default option value to 0.
Always do exact shadow propagation for unsigned ICmp with constants, it is
cheap (under 1% cpu time) and required for correctness.
llvm-svn: 173682
|
| |
|
|
|
|
| |
Broken tests.
llvm-svn: 173679
|
| |
|
|
|
|
| |
50% slowdown on one of the specs.
llvm-svn: 173678
|
| |
|
|
|
|
| |
large to static inline and place in a header file such as ObjCARC.h.
llvm-svn: 173666
|
| |
|
|
|
|
| |
violations.
llvm-svn: 173663
|
| |
|
|
| |
llvm-svn: 173662
|
| |
|
|
| |
llvm-svn: 173654
|
| |
|
|
| |
llvm-svn: 173653
|