- Apr 19, 2012
-
-
Sean Callanan authored
disassembler fixes. The ARM disassembler is now crash-free on all opcodes. llvm-svn: 155149
-
Johnny Chen authored
to the already existing (test result, test id) to avoid collision and to facilitate postmortem analysis. llvm-svn: 155148
-
Michael J. Spencer authored
llvm-ld is no longer useful and causes confusion and so it is being removed. * Does not work very well on Windows because it must call a gcc like driver to assemble and link. * Has lots of hard coded paths which are wrong on many systems. * Does not understand most of ld's options. * Can be partially replaced by llvm-link | opt | {llc | as, llc -filetype=obj} | ld, or fully replaced by Clang. I know of no production use of llvm-ld, and hacking use should be replaced by Clang's driver. llvm-svn: 155147
-
Johnny Chen authored
Not a test failure for i386; instead, the test case should be modified to not over-expect type fields for the synthetic childs. rdar://problem/11277013 llvm-svn: 155144
-
Jim Grosbach authored
There's almost always a small number of instruction operands, so use a SmallVector and save on heap allocations. llvm-svn: 155143
-
Jim Grosbach authored
llvm-svn: 155142
-
Richard Smith authored
llvm-svn: 155141
-
David Blaikie authored
llvm-svn: 155140
-
David Blaikie authored
llvm-svn: 155139
-
Jim Ingham authored
In debug mode, assert when we fail to get the sequence mutex. We need to remove as many places where this can happen as possible. llvm-svn: 155138
-
DeLesley Hutchins authored
path-sensitive analysis like handling of trylock expressions. llvm-svn: 155137
-
Jakob Stoklund Olesen authored
The shl instruction is used to represent multiplication by a constant power of two as well as bitwise left shifts. Some InstCombine transformations would turn an shl instruction into a bit mask operation, making it difficult for later analysis passes to recognize the constsnt multiplication. Disable those shl transformations, deferring them to DAGCombine time. An 'shl X, C' instruction is now treated mostly the same was as 'mul X, C'. These transformations are deferred: (X >>? C) << C --> X & (-1 << C) (When X >> C has multiple uses) (X >>? C1) << C2 --> X << (C2-C1) & (-1 << C2) (When C2 > C1) (X >>? C1) << C2 --> X >>? (C1-C2) & (-1 << C2) (When C1 > C2) The corresponding exact transformations are preserved, just like div-exact + mul: (X >>?,exact C) << C --> X (X >>?,exact C1) << C2 --> X << (C2-C1) (X >>?,exact C1) << C2 --> X >>?,exact (C1-C2) The disabled transformations could also prevent the instruction selector from recognizing rotate patterns in hash functions and cryptographic primitives. I have a test case for that, but it is too fragile. llvm-svn: 155136
-
Tobias Grosser authored
After working and explaining this function to someone, I realized it could be simplified and better documented. llvm-svn: 155135
-
Daniel Dunbar authored
llvm-svn: 155134
-
Daniel Dunbar authored
- Work in progress, this is mostly important because it lets us incrementally migrate the remaining documentation. - Lots of styling, editing, and integration work yet to come… - PR12589 llvm-svn: 155133
-
Daniel Dunbar authored
- Work in progress, this is just the basic structure. llvm-svn: 155132
-
Daniel Dunbar authored
the user has another lit somewhere. llvm-svn: 155131
-
Fariborz Jahanian authored
patch fixing writing a spurious 'static' into the wrong place. // rdar://11275241 llvm-svn: 155130
-
DeLesley Hutchins authored
which are checked in the parser, and analysis warnings that require the full analysis. This allows attribute syntax to be checked independently of the full thread safety analysis. Also introduces a new warning for the case where a string is used as a lock expression; this allows the analysis to gracefully handle expressions that would otherwise cause a parse error. llvm-svn: 155129
-
Gabor Greif authored
llvm-svn: 155128
-
Kostya Serebryany authored
llvm-svn: 155127
-
Patrick Beard authored
llvm-svn: 155126
-
Manuel Klimek authored
llvm-svn: 155108
-
Francois Pichet authored
llvm-svn: 155107
-
Richard Smith authored
initialize references, create std::initializer_list objects, or call constructors. llvm-svn: 155105
-
Craig Topper authored
Make fast isel use &XXXRegClass instead of XXXRegisterClass. Not a functional change since XXXRegisterClass is just a constant alias of &XXXRegClass, but should probably go away. llvm-svn: 155104
-
Rafael Espindola authored
This fixes the included testcase and lets us simplify the code a bit. It does require using mergeWithMin when merging class information to its members. Expand the comments to explain why that works. llvm-svn: 155103
-
Rafael Espindola authored
an explicit default one. This means that with -fvisibility hidden we now produce a hidden symbol for template <typename T> class DEFAULT foo { void bar() {} }; class zed {}; template class foo<zed>; This matches the behaviour of gcc 4.7. llvm-svn: 155102
-
Rafael Espindola authored
there is no need for mergeVisibily to ever increase the visibility. Not doing so lets us replace an incorrect use of mergeVisibilityWithMin. The testcase struct HIDDEN RECT { int top; }; DEFAULT RECT foo = {0}; shows that we should give preference to one of the attributes instead of keeping the minimum. We still get this testcase wrong because mergeVisibily handles two explicit visibilities incorrectly, but this is a step in the right direction. llvm-svn: 155101
-
Rafael Espindola authored
llvm-svn: 155100
-
Rafael Espindola authored
DHasExplicitVisibility. Simplify the code a bit. llvm-svn: 155099
-
Rafael Espindola authored
the current implementation this should be a nop as explicit visibility takes precedence in mergeVisibility. The location chosen is such that attributes checked above it can force a symbol to be default. For example, an attribute is the variable or function. Attributes checked after this point, can only make the visibility more restrictive. An attribute in a type for example. llvm-svn: 155098
-
Rafael Espindola authored
currently a nop as those users are the first merge or are a merge of a hidden explicit visibility, which always wins in the current implementation. llvm-svn: 155095
-
Jason Molenda authored
llvm-svn: 155093
-
Jim Ingham authored
Switch to setting the write side of the run lock when we call Resume. Then make a PrivateResume that doesn't switch the run-lock state, and use that where we are resuming without changing the public resume state. llvm-svn: 155092
-
Richard Smith authored
out of the box on Linux systems. If you're building against libc++abi, you still need to make sure it can find <cxxabi.h> so it knows not to export symbols which libc++abi provides. llvm-svn: 155091
-
Andrew Trick authored
llvm-svn: 155090
-
Andrew Trick authored
llvm-svn: 155089
-
Patrick Beard authored
llvm-svn: 155088
-
Johnny Chen authored
Plus fix some test cases to skip/succeed for i386. llvm-svn: 155087
-