- Jan 15, 2013
-
-
Jakub Staszak authored
llvm-svn: 172489
-
- Jan 14, 2013
-
-
Shuxin Yang authored
--------------------------------------------------------------------------- C_A: reassociation is allowed C_R: reciprocal of a constant C is appropriate, which means - 1/C is exact, or - reciprocal is allowed and 1/C is neither a special value nor a denormal. ----------------------------------------------------------------------------- rule1: (X/C1) / C2 => X / (C2*C1) (if C_A) => X * (1/(C2*C1)) (if C_A && C_R) rule 2: X*C1 / C2 => X * (C1/C2) if C_A rule 3: (X/Y)/Z = > X/(Y*Z) (if C_A && at least one of Y and Z is symbolic value) rule 4: Z/(X/Y) = > (Z*Y)/X (similar to rule3) rule 5: C1/(X*C2) => (C1/C2) / X (if C_A) rule 6: C1/(X/C2) => (C1*C2) / X (if C_A) rule 7: C1/(C2/X) => (C1/C2) * X (if C_A) llvm-svn: 172488
-
Dmitri Gribenko authored
[[gnu::...]] syntax Pointed out by Richard Smith on the mailing list. llvm-svn: 172487
-
Tobias Grosser authored
llvm-svn: 172486
-
Richard Smith authored
ActOnFinishFullExpr that some of its checks only apply to discarded-value expressions. This adds missing checks for unexpanded variadic template parameter packs to a handful of constructs. llvm-svn: 172485
-
Chad Rosier authored
have an arbitrary ordering of the base register, index register and displacement. rdar://12527141 llvm-svn: 172484
-
Dmitri Gribenko authored
llvm-svn: 172483
-
Nick Kledzik authored
llvm-svn: 172482
-
Dmitri Gribenko authored
llvm-svn: 172481
-
Bill Schmidt authored
The included test case is derived from one of the GCC compatibility tests. The problem arises after the selection DAG has been converted to type-legalized form. The combiner first sees a 64-bit load that can be converted into a pre-increment form. The original load feeds into a SRL that isolates the upper 32 bits of the loaded doubleword. This looks like an opportunity for DAGCombiner::ReduceLoadWidth() to replace the 64-bit load with a 32-bit load. However, this transformation is not valid, as the replacement load is not a pre-increment load. The pre-increment load produces an extra result, which feeds a subsequent add instruction. The replacement load only has one result value, and this value is propagated to all uses of the pre- increment load, including the add. Because the add is looking for the second result value as its operand, it ends up attempting to add a constant to a token chain, resulting in a crash. So the patch simply disables this transformation for any load with more than two result values. llvm-svn: 172480
-
Sean Callanan authored
JIT it again. llvm-svn: 172477
-
Michael Gottesman authored
We lower these into 2x chained usub.with.overflow intrinsics. llvm-svn: 172476
-
Quentin Colombet authored
Refactor the big if/else sequence into one string switch for ARM subtype selection. llvm-svn: 172475
-
Dmitri Gribenko authored
llvm-svn: 172474
-
Quentin Colombet authored
Complete the existing support of ARM v6m, v7m, and v7em, i.e., respectively cortex-m0, cortex-m3, and cortex-m4 on the backend side. Adds new subtype values for the MachO format and use them when the related triple are set. llvm-svn: 172472
-
David Greene authored
Fix a casting-away-const compiler warning. llvm-svn: 172471
-
David Greene authored
Do proper casting to eliminate a const-away-cast compiler warning. llvm-svn: 172470
-
David Greene authored
Properly cast some more code that triggered cast-away-const errors. llvm-svn: 172469
-
David Greene authored
Properly cast code to eliminate cast-away-const errors. llvm-svn: 172468
-
David Greene authored
Add a const version of getFpValPtr to avoid a cast-away-const warning. llvm-svn: 172467
-
David Greene authored
Fix another cast-away-const cast. llvm-svn: 172466
-
David Greene authored
Stop a gcc warning about casting away const. llvm-svn: 172465
-
David Greene authored
Use const_cast<> to avoid cast-away-const errors. llvm-svn: 172464
-
Andrew Trick authored
Note that this bug is only exposed because LTO fails to use TTI. Fixes self-LTO of clang. rdar://13007381. llvm-svn: 172462
-
Howard Hinnant authored
llvm-svn: 172461
-
Nick Lewycky authored
llvm-svn: 172460
-
Douglas Gregor authored
module-import dependencies, so we'll get the link order correct for those silly linkers that need it. llvm-svn: 172459
-
-
Argyrios Kyrtzidis authored
initial size and an allocator. llvm-svn: 172455
-
Joe Groff authored
llvm-svn: 172454
-
Joe Groff authored
Use the existing move implementation of the internal DenseMap::InsertIntoBucket method to provide a user-facing move insert method. llvm-svn: 172453
-
Michael Gottesman authored
llvm-svn: 172452
-
Eli Bendersky authored
Now that it behaves itself in terms of streamer independence (r172450), this method can be moved to MCAsmParser to be available to all extensions, overriding, etc. -- -This line, and those below, will be ignored-- M lib/MC/MCParser/AsmParser.cpp M include/llvm/MC/MCParser/MCAsmParser.h llvm-svn: 172451
-
Eli Bendersky authored
The aim of this patch is to fix the following piece of code in the platform-independent AsmParser: void AsmParser::CheckForValidSection() { if (!ParsingInlineAsm && !getStreamer().getCurrentSection()) { TokError("expected section directive before assembly directive"); Out.SwitchSection(Ctx.getMachOSection( "__TEXT", "__text", MCSectionMachO::S_ATTR_PURE_INSTRUCTIONS, 0, SectionKind::getText())); } } This was added for the "-n" option of llvm-mc. The proposed fix adds another virtual method to MCStreamer, called InitToTextSection. Conceptually, it's similar to the existing InitSections which initializes all common sections and switches to text. The new method is implemented by each platform streamer in a way that it sees fit. So AsmParser can now do this: void AsmParser::CheckForValidSection() { if (!ParsingInlineAsm && !getStreamer().getCurrentSection()) { TokError("expected section directive before assembly directive"); Out.InitToTextSection(); } } Which is much more reasonable. llvm-svn: 172450
-
Eli Bendersky authored
Since it's used by extensions. One further step to fully decoupling GenericAsmParser from an intimate knowledge of the internals of AsmParser, pointing it to the MCASmParser interface instead (like all other parser extensions do). Since this change moves the MacroArgument type to the interface header, it's renamed to be a bit more descriptive in a general context. llvm-svn: 172449
-
Douglas Gregor authored
link options for the modules it imports. llvm-svn: 172448
-
Howard Hinnant authored
Fix string conversions functions to throw out_of_range properly. Fixes http://llvm.org/bugs/show_bug.cgi?id=14919. llvm-svn: 172447
-
Jordan Rose authored
This should fix cast-away-const warnings reported by David Greene. llvm-svn: 172446
-
Jordan Rose authored
Patch by David Greene, modified by me. llvm-svn: 172445
-
Jordan Rose authored
This was previously added to support -[NSAutoreleasePool drain], which behaves like -release under non-GC and "please collect" under GC. We're not currently modeling the autorelease pool stack, though, so we can just take this out entirely. Fixes PR14927. llvm-svn: 172444
-