- Nov 15, 2011
-
-
Rafael Espindola authored
has a reference to it. Unfortunately, that doesn't work for codegen passes since we don't get notified of MBB's being deleted (the original BB stays). Use that fact to our advantage and after printing a function, check if any of the IL BBs corresponds to a symbol that was not printed. This fixes pr11202. llvm-svn: 144674
-
Akira Hatanaka authored
registers and instructions when ABI is N64. llvm-svn: 144666
-
Akira Hatanaka authored
register. llvm-svn: 144665
-
Akira Hatanaka authored
llvm-svn: 144664
-
Akira Hatanaka authored
llvm-svn: 144663
-
Benjamin Kramer authored
Remove Value::getNameStr. It has been deprecated for a while and provides no additional value over getName(). llvm-svn: 144657
-
Benjamin Kramer authored
llvm-svn: 144656
-
Akira Hatanaka authored
llvm-svn: 144655
-
Akira Hatanaka authored
llvm-svn: 144654
-
Jim Grosbach authored
rdar://10435076 llvm-svn: 144650
-
Jim Grosbach authored
llvm-svn: 144649
-
Benjamin Kramer authored
llvm-svn: 144648
-
Benjamin Kramer authored
llvm-svn: 144647
-
Jakob Stoklund Olesen authored
A function using any RC alias is enough to enable the ExeDepsFix pass. llvm-svn: 144636
-
Jay Foad authored
llvm-svn: 144635
-
Jay Foad authored
llvm-svn: 144634
-
Jay Foad authored
llvm-svn: 144633
-
Jay Foad authored
of PseudoSourceValue from lib/Target/. llvm-svn: 144632
-
Jay Foad authored
llvm-svn: 144631
-
Jakob Stoklund Olesen authored
These tests are actually correct, clang was miscompiling ExeDepsFix::processUses. Evan fixed the miscompilation in r144628. llvm-svn: 144630
-
Craig Topper authored
Fix PR11370 for real. Prevents converting 256-bit FP instruction to AVX2 256-bit integer instructions when AVX2 isn't enabled. llvm-svn: 144629
-
Evan Cheng authored
Set SeenStore to true to prevent loads from being moved; also eliminates a non-deterministic behavior. llvm-svn: 144628
-
Chandler Carruth authored
block sequence when recovering from unanalyzable control flow constructs, *always* use the function sequence. I'm not sure why I ever went down the path of trying to use the loop sequence, it is fundamentally not the correct sequence to use. We're trying to preserve the incoming layout in the cases of unreasonable control flow, and that is only encoded at the function level. We already have a filter to select *exactly* the sub-set of blocks within the function that we're trying to form into a chain. The resulting code layout is also significantly better because of this. In several places we were ending up with completely unreasonable control flow constructs due to the ordering chosen by the loop structure for its internal storage. This change removes a completely wasteful vector of basic blocks, saving memory allocation in the common case even though it costs us CPU in the fairly rare case of unnatural loops. Finally, it fixes the latest crasher reduced out of GCC's single source. Thanks again to Benjamin Kramer for the reduction, my bugpoint skills failed at it. llvm-svn: 144627
-
Craig Topper authored
Properly qualify AVX2 specific parts of execution dependency table. Also enable converting between 256-bit PS/PD operations when AVX1 is enabled. Fixes PR11370. llvm-svn: 144622
-
NAKAMURA Takumi authored
It triggers generating insane executables with both binutils-2.19.1(msysgit) and 2.22.51.20111013(cygwin). llvm-svn: 144621
-
Jakob Stoklund Olesen authored
llvm-svn: 144613
-
Jakob Stoklund Olesen authored
This should unbreak clang-x86_64-darwin10-RA, but I can't actually reproduce the failure. llvm-svn: 144611
-
Evan Cheng authored
integer variants. rdar://10437054 llvm-svn: 144608
-
Jim Grosbach authored
rdar://10435076 llvm-svn: 144606
-
Nick Lewycky authored
llvm-svn: 144603
-
Jakob Stoklund Olesen authored
Two new TargetInstrInfo hooks lets the target tell ExecutionDepsFix about instructions with partial register updates causing false unwanted dependencies. The ExecutionDepsFix pass will break the false dependencies if the updated register was written in the previoius N instructions. The small loop added to sse-domains.ll runs twice as fast with dependency-breaking instructions inserted. llvm-svn: 144602
-
Jakob Stoklund Olesen authored
Keep track of the last instruction to define each register individually instead of per DomainValue. This lets us track more accurately when a register was last written. Also track register ages across basic blocks. When entering a new basic block, use the least stale predecessor def as a worst case estimate for register age. The register age is used to arbitrate between conflicting domains. The most recently defined register wins. llvm-svn: 144601
-
Devang Patel authored
llvm-svn: 144600
-
Devang Patel authored
llvm-svn: 144599
-
Jim Grosbach authored
llvm-svn: 144598
-
Nick Lewycky authored
link it against llvm code, by making our definitions weak. "Some users." llvm-svn: 144596
-
Jim Grosbach authored
rdar://10435076 llvm-svn: 144593
-
Jim Grosbach authored
rdar://10435076 llvm-svn: 144592
-
Jim Grosbach authored
llvm-svn: 144589
-
Jim Grosbach authored
Make it easier to deal with aliases for instructions that do require a suffix but accept more specific variants of the same size. llvm-svn: 144588
-