- Jul 31, 2012
-
-
Chandler Carruth authored
for this class. These tests exercise most of the basic properties, but the API for TinyPtrVector is very strange currently. My plan is to start fleshing out the API to match that of SmallVector, but I wanted a test for what is there first. Sadly, it doesn't look reasonable to just re-use the SmallVector tests, as this container can only ever store pointers, and much of the SmallVector testing is to get construction and destruction right. Just to get this basic test working, I had to add value_type to the interface. While here I found a subtle bug in the combination of 'erase', 'begin', and 'end'. Both 'begin' and 'end' wanted to use a null pointer to indicate the "end" iterator of an empty vector, regardless of whether there is actually a vector allocated or the pointer union is null. Everything else was fine with this except for erase. If you erase the last element of a vector after it has held more than one element, we return the end iterator of the underlying SmallVector which need not be a null pointer. Instead, simply use the pointer, and poniter + size() begin/end definitions in the tiny case, and delegate to the inner vector whenever it is present. llvm-svn: 161024
-
Jakob Stoklund Olesen authored
We are extending live ranges, so kill flags are not accurate. They aren't needed until they are recomputed after RA anyway. <rdar://problem/11950722> llvm-svn: 161023
-
Manman Ren authored
We branch to the successor with higher edge weight first. Convert from je LBB4_8 --> to outer loop jmp LBB4_14 --> to inner loop to jne LBB4_14 jmp LBB4_8 PR12750 rdar: 11393714 llvm-svn: 161018
-
Andrew Trick authored
llvm-svn: 161010
-
Andrew Trick authored
llvm-svn: 161009
-
Andrew Trick authored
llvm-svn: 161007
-
Chandler Carruth authored
CallInst for intrinsics. This allows users of the InstVisitor that would like to special case certain very common intrinsics to do so naturally in keeping with the type hierarchy's utility classes. llvm-svn: 161006
-
Jakob Stoklund Olesen authored
llvm-svn: 161004
-
Jakob Stoklund Olesen authored
This lets traces include the final iteration of a nested loop above the center block, and the first iteration of a nested loop below the center block. We still don't allow traces to contain backedges, and traces are truncated where they would leave a loop, as seen from the center block. llvm-svn: 161003
-
Jim Grosbach authored
Empty macro arguments at the end of the list should be as-if not specified at all, but those in the middle of the list need to be kept so as not to screw up the positional numbering. E.g.: .macro foo foo_-bash___: nop .endm foo 1, 2, 3, 4 foo 1, , 3, 4 Should create two labels, "foo_1_2_3_4" and "foo_1__3_4". rdar://11948769 llvm-svn: 161002
-
Chandler Carruth authored
test more than a single instantiation of SmallVector. Add testing for 0, 1, 2, and 4 element sized "small" buffers. These appear to be essentially untested in the unit tests until now. Fix several tests to be robust in the face of a '0' small buffer. As a consequence of this size buffer, the growth patterns are actually observable in the test -- yes this means that many tests never caused a grow to occur before. For some tests I've merely added a reserve call to normalize behavior. For others, the growth is actually interesting, and so I captured the fact that growth would occur and adjusted the assertions to not assume how rapidly growth occured. Also update the specialization for a '0' small buffer length to have all the same interface points as the normal small vector. llvm-svn: 161001
-
- Jul 30, 2012
-
-
Jakob Stoklund Olesen authored
llvm-svn: 160997
-
Nick Lewycky authored
llvm-svn: 160996
-
Jakob Stoklund Olesen authored
When computing a trace, all the candidates for pred/succ must have been visited. Filter out back-edges first, though. The PO traversal ignores them. Thanks to Andy for spotting this in review. llvm-svn: 160995
-
Jakob Stoklund Olesen authored
By overriding Pass::verifyAnalysis(), the pass contents will be verified by the pass manager. llvm-svn: 160994
-
Pete Cooper authored
Consider address spaces for hashing and CSEing DAG nodes. Otherwise two loads from different x86 segments but the same address would get CSEd llvm-svn: 160987
-
Eric Christopher authored
llvm-svn: 160981
-
Kevin Enderby authored
where the other_half of the movt and movw relocation entries needs to get set and only with the 16 bits of the other half. rdar://10038370 llvm-svn: 160978
-
Jakob Stoklund Olesen authored
This is a cleaned up version of the isFree() function in MachineTraceMetrics.cpp. Transient instructions are very unlikely to produce any code in the final output. Either because they get eliminated by RegisterCoalescing, or because they are pseudo-instructions like labels and debug values. llvm-svn: 160977
-
Jakob Stoklund Olesen authored
This function verifies the consistency of cached data in the MachineTraceMetrics analysis. llvm-svn: 160976
-
Jakob Stoklund Olesen authored
The MachineTraceMetrics analysis must be invalidated before modifying the CFG. This will catch some of the violations of that rule. llvm-svn: 160969
-
Jakob Stoklund Olesen authored
A->isPredecessor(B) is the same as B->isSuccessor(A), but it can tolerate a B that is null or dangling. This shouldn't happen normally, but it it useful for verification code. llvm-svn: 160968
-
Nadav Rotem authored
Together with Ran Chachick <ran.chachick@intel.com> llvm-svn: 160954
-
Craig Topper authored
llvm-svn: 160953
-
Craig Topper authored
Mark MOVZX32_NOREX as isCodeGenOnly and neverHasSideEffects. The isCodeGenOnly change allows special detection of _NOREX instructions to be removed from tablegen disassembler code. llvm-svn: 160951
-
Craig Topper authored
llvm-svn: 160950
-
Craig Topper authored
Remove check for sub class of X86Inst from filter function since caller guaranteed it. Replace another sub class check with ShouldBeEmitted flag since it was factored in there already. llvm-svn: 160949
-
Craig Topper authored
llvm-svn: 160948
-
Craig Topper authored
Remove check for f256mem from has256BitOperands as nothing depended on it and it isn't the only 256-bit memory type anyway. llvm-svn: 160946
-
Craig Topper authored
llvm-svn: 160945
-
Craig Topper authored
llvm-svn: 160942
-
Craig Topper authored
llvm-svn: 160941
-
Craig Topper authored
Fix up patterns for VCVTSS2SD. Specifically give it priority over SSE form. Add an OptForSpeed to explicitly pair up with an OptForSize that was already on another pattern. llvm-svn: 160939
-
Craig Topper authored
llvm-svn: 160938
-
Craig Topper authored
llvm-svn: 160937
-
- Jul 29, 2012
-
-
Benjamin Kramer authored
No functionality change. llvm-svn: 160929
-
Manman Ren authored
llvm-svn: 160927
-
Nick Lewycky authored
llvm-svn: 160925
-
- Jul 28, 2012
-
-
Craig Topper authored
llvm-svn: 160922
-
Craig Topper authored
llvm-svn: 160921
-