- Nov 15, 2011
-
-
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
-
Jim Grosbach authored
rdar://10435076 llvm-svn: 144587
-
Chad Rosier authored
violating a dependency is to emit all loads prior to stores. This would likely cause a great deal of spillage offsetting any potential gains. llvm-svn: 144585
-
Jim Grosbach authored
Canonicallize on the non-suffixed form, but continue to accept assembly that has any correctly sized type suffix. llvm-svn: 144583
-
- Nov 14, 2011
-
-
Nick Lewycky authored
and stores capture) to permit the caller to see each capture point and decide whether to continue looking. Use this inside memdep to do an analysis that basicaa won't do. This lets us solve another devirtualization case, fixing PR8908! llvm-svn: 144580
-
Chad Rosier authored
llvm-svn: 144579
-
Chad Rosier authored
rdar://10412592 llvm-svn: 144578
-
Chad Rosier authored
into registers, rather then encoded directly in the load/store. llvm-svn: 144576
-
Jim Grosbach authored
rdar://10435076 llvm-svn: 144575
-
Nick Lewycky authored
available. llvm-svn: 144574
-
Evan Cheng authored
llvm-svn: 144569
-
Evan Cheng authored
"kill". This looks like a bug upstream. Since that's going to take some time to understand, loosen the assertion and disable the optimization when multiple kills are seen. llvm-svn: 144568
-
Nick Lewycky authored
These annotations are disabled entirely when either ENABLE_THREADS is off, or building a release build. When enabled, they add calls to functions with no statements to ManagedStatic's getters. Use these annotations to inform tsan that the race used inside ManagedStatic initialization is actually benign. Thanks to Kostya Serebryany for helping write this patch! llvm-svn: 144567
-
-