- Jan 09, 2014
-
-
Evan Cheng authored
llvm-svn: 198889
-
Nadav Rotem authored
This reverts r198854. llvm-svn: 198879
-
NAKAMURA Takumi authored
It caused undefined behavior. DwarfTypeUnit::Ty might not be initialized properly, I guess. llvm-svn: 198865
-
Stepan Dyatkovskiy authored
Detailed description is here: http://llvm.org/bugs/show_bug.cgi?id=18000#c16 For participation in bugfix process special thanks to David Wiberg. llvm-svn: 198863
-
Richard Sandiford authored
The zext handling added in r197802 wasn't right for RNSBG. This patch restricts it to ROSBG, RXSBG and RISBG. (The tests for RISBG were added in r197802 since RISBG was the motivating example.) llvm-svn: 198862
-
Richard Sandiford authored
At the moment we expect rotates to have the form: (or (shl X, Y), (shr X, Z)) where Y == bitsize(X) - Z or Z == bitsize(X) - Y. This form means that the (or ...) is undefined for Y == 0 or Z == 0. This undefinedness can be avoided by using Y == (C * bitsize(X) - Z) & (bitsize(X) - 1) or Z == (C * bitsize(X) - Y) & (bitsize(X) - 1) for any integer C (including 0, the most natural choice). llvm-svn: 198861
-
Richard Sandiford authored
InstCombine converts (sub 32, (add X, C)) into (sub 32-C, X), so a rotate left of a 32-bit Y by X+C could appear as either: (or (shl Y, (add X, C)), (shr Y, (sub 32, (add X, C)))) without InstCombine or: (or (shl Y, (add X, C)), (shr Y, (sub 32-C, X))) with it. We already matched the first form. This patch handles the second too. llvm-svn: 198860
-
Nadav Rotem authored
llvm-svn: 198854
-
David Blaikie authored
llvm-svn: 198851
-
David Blaikie authored
llvm-svn: 198850
-
David Blaikie authored
llvm-svn: 198846
-
David Blaikie authored
llvm-svn: 198843
-
David Blaikie authored
Since we'll now also need the split dwarf file name along with the language in DwarfTypeUnits, just use the whole DICompileUnit rather than explicitly handling each field needed. llvm-svn: 198842
-
David Blaikie authored
This reverts commit r198830. Decided to go a different way with this... llvm-svn: 198841
-
Chandler Carruth authored
I add support for the new pass manager to it. llvm-svn: 198838
-
Chandler Carruth authored
operand into the Value interface just like the core print method is. That gives a more conistent organization to the IR printing interfaces -- they are all attached to the IR objects themselves. Also, update all the users. This removes the 'Writer.h' header which contained only a single function declaration. llvm-svn: 198836
-
David Blaikie authored
It's unused in DwarfTypeUnit, as is expected. llvm-svn: 198830
-
Rafael Espindola authored
llvm-svn: 198819
-
Andrew Trick authored
In the stackmap format we advertise the constant field as signed. However, we were determining whether to promote to a 64-bit constant pool based on an unsigned comparison. This fix allows -1 to be encoded as a small constant. llvm-svn: 198816
-
David Blaikie authored
llvm-svn: 198813
-
David Blaikie authored
This makes it easier to write a test that's mostly shared between fission and non-fission (using FileCheck's multiple prefix support). llvm-svn: 198806
-
- Jan 08, 2014
-
-
Chandler Carruth authored
having the include could cause weird layering problems between the IR and MC libraries. llvm-svn: 198796
-
Hal Finkel authored
MIsNeedChainEdge, which is used by -enable-aa-sched-mi (AA in misched), had an llvm_unreachable when -enable-aa-sched-mi is enabled and we reach an instruction with multiple MMOs. Instead, return a conservative answer. This allows testing -enable-aa-sched-mi on x86. Also, this moves the check above the isUnsafeMemoryObject checks. isUnsafeMemoryObject is currently correct only for instructions with one MMO (as noted in the comment in isUnsafeMemoryObject): // We purposefully do no check for hasOneMemOperand() here // in hope to trigger an assert downstream in order to // finish implementation. The problem with this is that, had the candidate edge passed the "!MIa->mayStore() && !MIb->mayStore()" check, the hoped-for assert would never happen (which could, in theory, lead to incorrect behavior if one of these secondary MMOs was volatile, for example). llvm-svn: 198795
-
Matt Arsenault authored
llvm-svn: 198794
-
Ana Pazos authored
llvm-svn: 198791
-
Roman Divacky authored
resolution works. llvm-svn: 198780
-
David Woodhouse authored
It's not a real instruction any more and doesn't need encoding information. llvm-svn: 198778
-
Andrea Di Biagio authored
to the following two rules: 1) fold (vselect (build_vector AllOnes), A, B) -> A 2) fold (vselect (build_vector AllZeros), A, B) -> B llvm-svn: 198777
-
Richard Sandiford authored
No functional change intended. llvm-svn: 198768
-
David Woodhouse authored
llvm-svn: 198763
-
David Woodhouse authored
Mark them as requiring 16-bit mode for now, since we don't yet have relaxation support for FK_Data_2. llvm-svn: 198762
-
David Woodhouse authored
They do *different* things to %esp, so they are not equivalent. Rename PUSHi8 to PUSH32i8 and add the missing PUSH16i8. llvm-svn: 198761
-
David Woodhouse authored
We can't do a perfect job here. We *have* to allow (%dx) even in 64-bit mode, for example, because it might be used for an unofficial form of the in/out instructions. We actually want to do a better job of validation *later*. Perhaps *instead* of doing it where we are at the moment. But for now, doing what validation we *can* do in the place that the code already has its validation, is an improvement. llvm-svn: 198760
-
David Woodhouse authored
It seems there is no separate instruction class for having AdSize *and* OpSize bits set, which is required in order to disambiguate between all these instructions. So add that to the disassembler. Hm, perhaps we do need an AdSize16 bit after all? llvm-svn: 198759
-
David Woodhouse authored
Where "where possible" means that it's an immediate value and it's below 0x10000. In fact GAS will either truncate or error with larger values, and will insist on using the addr32 prefix to get 32-bit addressing. So perhaps we should do that, in a later patch. llvm-svn: 198758
-
David Woodhouse authored
JCXZ should have the 0x67 prefix only if we're in 32-bit mode, so make that appropriately conditional. And JECXZ needs the prefix instead. llvm-svn: 198757
-
David Woodhouse authored
I couldn't see how to do this sanely without splitting RETQ from RETL. Eric says: "sad about the inability to roundtrip them now, but...". I have no idea what that means, but perhaps it wants preserving in the commit comment. llvm-svn: 198756
-
David Woodhouse authored
llvm-svn: 198755
-
David Woodhouse authored
llvm-svn: 198754
-
David Woodhouse authored
llvm-svn: 198753
-