- Jan 15, 2013
-
-
Jack Carter authored
we need to generate a N64 compound relocation R_MIPS_GPREL_32/R_MIPS_64/R_MIPS_NONE. The bug was exposed by the SingleSourcetest case DuffsDevice.c. Contributer: Jack Carter llvm-svn: 172496
-
Eli Bendersky authored
simply use the getParser method from MCAsmParserExtension, working through the MCAsmParser interface. There's no longer a need to overload that method to cast it to the concrete AsmParser. llvm-svn: 172491
-
Eli Bendersky authored
This finally allows AsmParser to no longer list GenericAsmParser as a friend. All member vars directly accessed by GenericAsmParser have been properly encapsulated and exposed through the MCAsmParser interface. This reduces the coupling between AsmParser and GenericAsmParser. llvm-svn: 172490
-
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
-
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
-
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
-
Quentin Colombet authored
Refactor the big if/else sequence into one string switch for ARM subtype selection. llvm-svn: 172475
-
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
-
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
-
Nick Lewycky authored
llvm-svn: 172460
-
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
-
Eli Bendersky authored
The methods are also exposed via the MCAsmParser interface, which allows more than one client to control them. Previously, GenericAsmParser was playing with a member var in AsmParser directly (by virtue of being its friend). llvm-svn: 172440
-
Timur Iskhodzhanov authored
llvm-svn: 172411
-
Craig Topper authored
llvm-svn: 172379
-
Craig Topper authored
Create a single multiclass for SSE and AVX version of MOVL/MOVH. Prevents needing to specify everything twice. No functional change intended llvm-svn: 172378
-
Michael Gottesman authored
llvm-svn: 172374
-
Michael Gottesman authored
Updated the documentation in ObjCARC.cpp to fit the style guide better (i.e. use doxygen). Still some work to do though. llvm-svn: 172371
-
- Jan 13, 2013
-
-
Michael Gottesman authored
Fixed an infinite loop in the block escape in analysis in ObjCARC caused by 2x blocks each assigned a value via a phi-node causing each to depend on the other. A test case is provided as well. llvm-svn: 172368
-
Nick Lewycky authored
llvm-svn: 172364
-
Nuno Lopes authored
cache result of Size/OffsetVisitor to speedup analysis of PHI nodes llvm-svn: 172363
-
Dmitri Gribenko authored
llvm-svn: 172358
-
Benjamin Kramer authored
Those can occur when something between the sextload and the store is on the same chain and blocks isel. Fixes PR14887. llvm-svn: 172353
-
Nadav Rotem authored
llvm-svn: 172348
-
Michael Gottesman authored
llvm-svn: 172347
-
Michael Gottesman authored
llvm-svn: 172346
-
Chandler Carruth authored
case, but looking at the diff this was an obviously unintended change. Thanks for the careful review Bill! =] llvm-svn: 172336
-
- Jan 12, 2013
-
-
Benjamin Kramer authored
Shifting right two times will only yield zero. Should fix SingleSource/UnitTests/SignlessTypes/factor. llvm-svn: 172322
-