- Jan 16, 2013
-
-
Sean Callanan authored
handling multiple clients. However, occasionally an expression must be run in the service of another expression, and in this case two parsers need to access the same list of persistent variables. To allow this, persistent variables now provide state for multiple parsers, and parsers must allocate, access, and deallocate this state by providing their own ID (at the moment, simply the value of the "this" pointer). <rdar://problem/12914539> llvm-svn: 172573
-
Eli Bendersky authored
into which we can emit single instructions without fixups (which is most instructions). This is an optimization required because MCDataFragment is prety large (240 bytes on x64), with no change in functionality. For large programs, this reduces memory usage overhead required for bundling by 40%. To make the code as palatable as possible, the MCEncodedFragment interface was further fragmented (no pun intended) and MCEncodedFragmentWithFixups is used as the interface to work against when the user expects fixups. MCDataFragment and MCRelaxableFragment implement this interface, while the new MCCompactEncodedInstFragment implements MCEncodeFragment. llvm-svn: 172572
-
David Greene authored
Do some casting to avoid a signed/unsigned compare. llvm-svn: 172571
-
David Greene authored
Cast arithmetic results to avoid comparison of an unsigned to an int. llvm-svn: 172570
-
Chad Rosier authored
// FIXME: Constraints are hard coded to 'm', but we need an 'r' // constraint for addressof. This needs to be cleaned up! Test cases are already in place. Specifically, clang/test/CodeGen/ms-inline-asm.c t15(), t16(), and t24(). llvm-svn: 172569
-
- Jan 15, 2013
-
-
Eli Bendersky authored
After discussing the refactoring with Jim and Daniel, the following changes were made: * All generic directive parsing is now done by AsmParser itself. The previous division between it and GenericAsmParser did not have clear boundaries and just produced unnatural code of GenericAsmParser juggling the internals of AsmParser through an interface. The division of responsibilities is now clear: target-specific directives, other extensions (used by platform-specific parseres), and generic directives. * Priority for directive parsing was reshuffled to ask extensions first and check the generic directives later. No change in functionality. llvm-svn: 172568
-
Douglas Gregor authored
overriding and overridden method, allow the overridden method to have a narrower contract (introduced earlier, deprecated/obsoleted later) than the overriding method. Fixes <rdar://problem/12992023>. llvm-svn: 172567
-
rdar://problem/13011717Greg Clayton authored
Fixed a compilation error where NULL was being assigned to a uint. llvm-svn: 172566
-
David Greene authored
Use const_cast<> to avoid a cast-away-const error. llvm-svn: 172565
-
David Greene authored
Use const_cast<> to avoid a cast-away-const error. llvm-svn: 172564
-
David Greene authored
Use const_cast<> to avoid a cast-away-const error. llvm-svn: 172563
-
David Greene authored
Use const_cast<> to avoid a cast-away-const error. llvm-svn: 172562
-
David Greene authored
Properly use const_cast to fix a cast-away-const error. llvm-svn: 172561
-
David Greene authored
Make the const_cast explicit to silence a compiler warning. llvm-svn: 172560
-
David Greene authored
Do proper casting to avoid a cast-away-const error. llvm-svn: 172559
-
David Greene authored
Avoid a cast-away-const error by properly using const_cast<>. llvm-svn: 172558
-
David Greene authored
Eliminate a cast and resulting cast-qual warning by using a temporary as the target of memcpy. llvm-svn: 172557
-
Michael J. Spencer authored
llvm-svn: 172556
-
Aaron Ballman authored
llvm-svn: 172555
-
Michael J. Spencer authored
llvm-svn: 172554
-
Michael J. Spencer authored
This is done by creating a new non-weak anonymous symbol and creating an atom with content for that symbol. This is added after the weak symbol so that they have the same address. llvm-svn: 172553
-
Michael J. Spencer authored
llvm-svn: 172552
-
Shuxin Yang authored
some optimization opportunities (in the enclosing supper-expressions). rule 1. (-0.0 - X ) * Y => -0.0 - (X * Y) if expression "-0.0 - X" has only one reference. rule 2. (0.0 - X ) * Y => -0.0 - (X * Y) if expression "0.0 - X" has only one reference, and the instruction is marked "noSignedZero". 2. Eliminate negation (The compiler was already able to handle these opt if the 0.0s are replaced with -0.0.) rule 3: (0.0 - X) * (0.0 - Y) => X * Y rule 4: (0.0 - X) * C => X * -C if the expr is flagged "noSignedZero". 3. Rule 5: (X*Y) * X => (X*X) * Y if X!=Y and the expression is flagged with "UnsafeAlgebra". The purpose of this transformation is two-fold: a) to form a power expression (of X). b) potentially shorten the critical path: After transformation, the latency of the instruction Y is amortized by the expression of X*X, and therefore Y is in a "less critical" position compared to what it was before the transformation. 4. Remove the InstCombine code about simplifiying "X * select". The reasons are following: a) The "select" is somewhat architecture-dependent, therefore the higher level optimizers are not able to precisely predict if the simplification really yields any performance improvement or not. b) The "select" operator is bit complicate, and tends to obscure optimization opportunities. It is btter to keep it as low as possible in expr tree, and let CodeGen to tackle the optimization. llvm-svn: 172551
-
Daniel Dunbar authored
llvm-svn: 172550
-
Daniel Dunbar authored
llvm-svn: 172549
-
Daniel Dunbar authored
llvm-svn: 172548
-
Daniel Jasper authored
This is temporarily necessary until styles are configurable through files as it seems to be a contentious issue. llvm-svn: 172546
-
Dmitri Gribenko authored
llvm-svn: 172545
-
Nadav Rotem authored
LoopVectorizer cost model. Honor the user command line flag that selects the vectorization factor even if the target machine does not have any vector registers. llvm-svn: 172544
-
David Greene authored
Some versions of gcc accept unsupported -W flags and run just fine if there are no warnings, but die with an unsupported flag error if a warning is encountered. gcc 4.3 and gcc 4.4 both exhibit this behavior for -Wno-maybe-uninitialized. Therefore, if the flag check for -Wno-maybe-uninitialized succeeds, only use -Wno-maybe-uninitialized if we are using gcc version 4.7 or greater. Use -Wno-uninitialized otherwise. llvm-svn: 172543
-
Howard Hinnant authored
llvm-svn: 172542
-
Evgeniy Stepanov authored
They are failing on the bots. llvm-svn: 172540
-
Evgeniy Stepanov authored
Also improve test coveration of the handling of relational comparisons. llvm-svn: 172539
-
Evgeniy Stepanov authored
Both underlying IR operations support vectors of pointers already. llvm-svn: 172538
-
Manuel Klimek authored
This is an optimization that djasper spottet. For now, we do not format anything after the first token that belongs to such an implicit string literal. All our state is not made for handling that anyway, so we'll revisit this if we find a problem. llvm-svn: 172537
-
Manuel Klimek authored
Treat tokens inside <> for includes and everything from the second token of a warning / error on as an implicit string literal, e.g. do not change its whitespace at all. Now correctly formats: #include < path with space > #error Leave all white!!!!! space* alone! Note that for #error and #warning we still format the space up to the first token of the text, so: # error Text will become #error Text llvm-svn: 172536
-
Evgeniy Stepanov authored
It was out of sync with the conditions in the other two constructors. llvm-svn: 172535
-
Renato Golin authored
Test was failing for clang-native-arm-cortex-a9 build-bot configuration. The reason for the failure was the test was using hardcoded names. The attached patch fixes this failure by replacing the hard-coded variables names with pattern-matched variable names. Patch by Manish Verma, ARM llvm-svn: 172534
-
Daniel Jasper authored
We used to incorrectly identify some operators (*, &, +, -, etc.) if there were comments around them. Example: Before: int a = /**/ - 1; After: int a = /**/ -1; llvm-svn: 172533
-
Kostya Serebryany authored
[asan] enable asan_allocator2 by default on Linux. Will enable it on other platforms and remove the old one later, after additional testing. The new allocator is much faster and uses less memory llvm-svn: 172531
-