- Feb 22, 2014
-
-
Warren Hunt authored
CGRecordLayoutBuilder was aging, complex, multi-pass, and shows signs of existing before ASTRecordLayoutBuilder. It redundantly performed many layout operations that are now performed by ASTRecordLayoutBuilder and asserted that the results were the same. With the addition of support for the MS-ABI, such as placement of vbptrs, vtordisps, different bitfield layout and a variety of other features, CGRecordLayoutBuilder was growing unwieldy in its redundancy. This patch re-architects CGRecordLayoutBuilder to not perform any redundant layout but rather, as directly as possible, lower an ASTRecordLayout to an llvm::type. The new architecture is significantly smaller and simpler than the CGRecordLayoutBuilder and contains fewer ABI-specific code paths. It's also one pass. The architecture of the new system is described in the comments. For the most part, the new system simply takes all of the fields and bases from an ASTRecordLayout, sorts them, inserts padding and dumps a record. Bitfields, unions and primary virtual bases make this process a bit more complicated. See the inline comments. In addition, this patch updates a few lit tests due to the fact that the new system computes more accurate llvm types than CGRecordLayoutBuilder. Each change is commented individually in the review. Differential Revision: http://llvm-reviews.chandlerc.com/D2795 llvm-svn: 201907
-
Quentin Colombet authored
shifted mask rather than masking and shifting separately. The patch adds this transformation to the DAGCombiner: (shl (and (setcc:i8v16 ...) N01C) N1C) -> (and (setcc:i8v16 ...) N01C<<N1C) <rdar://problem/16054492> Patch by Adam Nemet <anemet@apple.com> llvm-svn: 201906
-
Ben Langmuir authored
Provides a way to create a virtual file system using a YAML file that supports mapping a file to a path on an 'external' file system. The external file system will typically be the 'real' file system, but for testing it can be changed. A future patch will add a clang option to allow the user to specify such a file and overlay it, but for now this code is only exercised by the unit tests. Differential Revision: http://llvm-reviews.chandlerc.com/D2835 llvm-svn: 201905
-
Juergen Ributzka authored
[Stackmaps] Move the target-independent frame index elimination for stackmaps and patchpoints into target-specific code. The lowering of the frame index for stackmaps and patchpoints requires some target-specific magic and should therefore be handled in the target-specific eliminateFrameIndex method. This is related to <rdar://problem/16106219> llvm-svn: 201904
-
Tobias Grosser authored
Reported-by:
Sebastian Pop <spop@codeaurora.org> Reported-by:
Yabin Hu <yabin.hwu@gmail.com> llvm-svn: 201903
-
Tobias Grosser authored
Reported-by:
Sebastian Pop <spop@codeaurora.org> llvm-svn: 201902
-
Warren Hunt authored
Because GCC incorrectly defines _mm_prefetch to take anything that casts to void*, people have started using that behavior. The previous patch that made _mm_prefetch actually take a const char * broke compatibility with existing code. This update to the patch leaves the macro that defines _mm_prefetch with the (void*) cast when _MSC_VER is not defined. llvm-svn: 201901
-
- Feb 21, 2014
-
-
Rui Ueyama authored
LLD now prints an error message if /SAFESEH option is specified and one or more input files are not compatible with SEH. llvm-svn: 201900
-
Ted Kremenek authored
Add requirement that attribute 'objc_protocol_requires_explicit_implementation' can only be applied to protocol definitions. llvm-svn: 201899
-
Tobias Grosser authored
llvm-svn: 201898
-
Jim Ingham authored
llvm-svn: 201897
-
Jim Ingham authored
on the debugserver side) when we kill a process or it leaves a zombie around. llvm-svn: 201896
-
Rui Ueyama authored
Syntactically /SAFESEH is a boolean flag -- you can pass /SAFESEH or /SAFESEH:no. The meaning of /SAFESEH is as follows. - If /SAFESEH is specified, the linker will produce an executable with SEH table. If any input files are not compatible with SEH, it's an error. - If /SAFESEH:no is specified, the linker will not emit SEH table even if all input files are compatible with SEH. - If no option is specified, the linker emits SEH table if all input files are compatible with SEH. llvm-svn: 201895
-
Joerg Sonnenberger authored
llvm-svn: 201894
-
Ted Kremenek authored
llvm-svn: 201893
-
Juergen Ributzka authored
Revert "Fix historical #ifdef. Use __cplusplus instead of __GXX_EXPERIMENTAL_CXX0X__ when compiling with clang. No functionality change." This reverts commit r201864, because it breaks our build bots. llvm-svn: 201892
-
Tobias Grosser authored
llvm-svn: 201891
-
Aaron Ballman authored
Adding role-based capability attributes that allow you to express role management: asserting a capability is held, acquiring a capability and releasing a capability. Also includes some skeleton documentation for these new attributes. This functionality should be considered a WIP. llvm-svn: 201890
-
Tobias Grosser authored
llvm-svn: 201889
-
Tobias Grosser authored
Instead of giving a choice between a precise (but possibly very complex) analysis and an approximative analysis we now use a hybrid approach which uses N precise steps followed by one approximating step. The precision of the analysis can be changed by increasing N. With a default of 'N' = 2, we get fully precise results for our current test cases and should not run into performance problems for more complex test cases. We can adjust this value when we got more experience with this dead code elimination. llvm-svn: 201888
-
Tobias Grosser authored
llvm-svn: 201887
-
Tobias Grosser authored
In case the domain of a statement is empty, the schedule optimizer set by accident the schedule to a NULL pointer. This is incorrect. Instead, we set it to an empty isl_map with zero schedule dimensions. We already checked for this in our test cases, but unfortunately the test cases did not fail as expected. The assert we add in this commit now ensures that the test cases fail properly in case we regress on this again. llvm-svn: 201886
-
Aaron Ballman authored
Shankar kindly pointed out that I wasn't following the coding convention properly, so moving raw_ostream.h above system_error.h. llvm-svn: 201885
-
Aaron Ballman authored
llvm-svn: 201884
-
Rui Ueyama authored
llvm-svn: 201883
-
Rafael Espindola authored
Should fix the bots. llvm-svn: 201882
-
Rafael Espindola authored
This interface allows IRObjectFile to be implemented without having dummy methods for all section and segment related methods. Both llvm-ar and llvm-nm are changed to use it. Unfortunately the mangler is still not plugged in since it requires some refactoring to make a Module hold a DataLayout. llvm-svn: 201881
-
Ted Kremenek authored
llvm-svn: 201880
-
Ted Kremenek authored
llvm-svn: 201879
-
Ted Kremenek authored
[ObjC] Change default property synthesis logic to not completely skip DiagnoseUnimplementedProperties. We're going to extend DiagnoseUnimplementedProperties shortly to look for more cases that aren't handled by default property synthesis. llvm-svn: 201878
-
Ted Kremenek authored
No functionality change. llvm-svn: 201877
-
David Blaikie authored
We were just emitting a label for this section for no real reason - this caused us to emit the section even though we never put anything in it. Not bothering with a test (though not adamantly anti-test) because it seems somewhat arbitrary to test for the absence of this section anymore than the absence of any other section. llvm-svn: 201876
-
Greg Clayton authored
Improved the GDBRemoteCommunicationClient::TestPacketSpeed() function so it tests how long it takes to send a 4MB buffer from the REMOTE GDB server to LLDB. llvm-svn: 201875
-
Greg Clayton authored
llvm-svn: 201874
-
Greg Clayton authored
llvm-svn: 201873
-
Greg Clayton authored
Previously the lldb-platform and lldb-gdbserver would crash. llvm-svn: 201872
-
Richard Smith authored
spotting this! llvm-svn: 201871
-
Rafael Espindola authored
llvm-svn: 201870
-
Sebastian Pop authored
llvm-svn: 201869
-
Sebastian Pop authored
handle special cases Step==1, Step==-1, GCD==1, and GCD==-1 llvm-svn: 201868
-