- Feb 16, 2012
-
-
Bill Wendling authored
llvm-svn: 150677
-
Tobias Grosser authored
llvm-svn: 150676
-
Tobias Grosser authored
llvm-svn: 150675
-
Tobias Grosser authored
llvm-svn: 150674
-
Tobias Grosser authored
llvm-svn: 150673
-
Tobias Grosser authored
llvm-svn: 150672
-
Tobias Grosser authored
llvm-svn: 150671
-
James Molloy authored
llvm-svn: 150670
-
James Molloy authored
Modify the algorithm when traversing the DAGCombiner's worklist to be O(log N) for all operations. This fixes a horrible worst case with lots of nodes where 99% of the time was being spent in std::remove. llvm-svn: 150669
-
Bill Wendling authored
llvm-svn: 150668
-
NAKAMURA Takumi authored
With MSVCRT, prior checker missed emission of #INF and #NAN. FIXME: Checking should be simpler. llvm-svn: 150667
-
NAKAMURA Takumi authored
llvm-svn: 150666
-
Jim Ingham authored
Use this to allow the lldb Driver to emit notifications for breakpoint modifications. <rdar://problem/10619974> llvm-svn: 150665
-
Eli Bendersky authored
Replace all instances of dg.exp file with lit.local.cfg, since all tests are run with LIT now and now Dejagnu. dg.exp is no longer needed. Patch reviewed by Daniel Dunbar. It will be followed by additional cleanup patches. llvm-svn: 150664
-
Eli Friedman authored
Shift Microsoft enum extensions from -fms-extensions to -fms-compatibility, so -fms-extensions doesn't affect enum semantics in incompatible ways. <rdar://problem/10657186>. llvm-svn: 150663
-
Pete Cooper authored
Template specialize SmallVector::push_back based on POD-ness of the type. Reduces clang binary by 188KB llvm-svn: 150662
-
NAKAMURA Takumi authored
atof(3) might behave differently among platforms. llvm-svn: 150661
-
Eli Friedman authored
llvm-svn: 150660
-
Anna Zaks authored
piece can always be generated. The default end of diagnostic path piece was failing to generate on a BlockEdge that was outgoing from a basic block without a terminator, resulting in a very simple diagnostic being rendered (ex: no path highlighting or custom visitors). Reuse another function, which is essentially doing the same thing and correct it not to fail when a block has no terminator. llvm-svn: 150659
-
Anna Zaks authored
We are not properly handling the memory regions that escape into struct fields, which led to a bunch of false positives. Be conservative here and give up when a pointer escapes into a struct. llvm-svn: 150658
-
Richard Smith authored
* Fix bug when determining whether && / || are potential constant expressions * Try harder when determining whether ?: is a potential constant expression * Produce a diagnostic on sizeof(VLA) to provide a better source location llvm-svn: 150657
-
Nico Weber authored
llvm-svn: 150656
-
Lang Hames authored
llvm-svn: 150655
-
Lang Hames authored
llvm-svn: 150654
-
Lang Hames authored
llvm-svn: 150653
-
Greg Clayton authored
that take formats or sizes. Also document that scalar expression results can be used in any command using expressions inside backticks. llvm-svn: 150652
-
Argyrios Kyrtzidis authored
llvm-svn: 150651
-
Chad Rosier authored
llvm-svn: 150650
-
Eli Friedman authored
llvm-svn: 150649
-
Bill Wendling authored
The garbage collection metadata needs to be merged "intelligently", when two or more modules are linked together, and not merely appended. (Appending creates a section which is too large.) The module flags metadata method is the way to do this. <rdar://problem/8198537> llvm-svn: 150648
-
-
Bill Wendling authored
The rule governing the flags is this: no-gc + no-gc = no-gc no-gc + gc = no-gc no-gc + gc-only = error gc + gc = gc gc + gc-only = gc-only gc-only + gc-only = gc-only llvm-svn: 150646
-
Douglas Gregor authored
pointers and block pointers). We use dummy definitions to keep the invariant that an implicit, used definition has a body; IR generation will substitute the actual contents, since they can't be represented as C++. For the block pointer case, compute the copy-initialization needed to capture the lambda object in the block, which IR generation will need later. llvm-svn: 150645
-
Dan Gohman authored
-fno-objc-arc-exceptions. This will allow the optimizer to perform optimizations which are only safe under that flag. This is a part of rdar://10803830. llvm-svn: 150644
-
Richard Smith authored
and move it out of -Wgnu so that -Wno-gnu leaves it enabled. As requested by Eli. llvm-svn: 150643
-
Eli Friedman authored
loop-rotate shouldn't hoist alloca instructions out of a loop. Patch by Patrik Hägglund, with slightly modified test. Issue reported by Patrik Hägglund on llvmdev. llvm-svn: 150642
-
Kostya Serebryany authored
llvm-svn: 150641
-
Richard Smith authored
and unions, and C++11 generalized constant expressions. llvm-svn: 150640
-
Fariborz Jahanian authored
as unscanned. // rdar://10832643 llvm-svn: 150639
-
Jakob Stoklund Olesen authored
Call instructions no longer have a list of 43 call-clobbered registers. Instead, they get a single register mask operand with a bit vector of call-preserved registers. This saves a lot of memory, 42 x 32 bytes = 1344 bytes per call instruction, and it speeds up building call instructions because those 43 imp-def operands no longer need to be added to use-def lists. (And removed and shifted and re-added for every explicit call operand). Passes like LiveVariables, LiveIntervals, RAGreedy, PEI, and BranchFolding are significantly faster because they can deal with call clobbers in bulk. Overall, clang -O2 is between 0% and 8% faster, uniformly distributed depending on call density in the compiled code. Debug builds using clang -O0 are 0% - 3% faster. I have verified that this patch doesn't change the assembly generated for the LLVM nightly test suite when building with -disable-copyprop and -disable-branch-fold. Branch folding behaves slightly differently in a few cases because call instructions have different hash values now. Copy propagation flushes its data structures when it crosses a register mask operand. This causes it to leave a few dead copies behind, on the order of 20 instruction across the entire nightly test suite, including SPEC. Fixing this properly would require the pass to use different data structures. llvm-svn: 150638
-