- Feb 18, 2014
-
-
Duncan P. N. Exon Smith authored
Introducing llvm-profdata, a tool for merging profile data generated by PGO instrumentation in clang. - The name indicates a file extension of <name>.profdata. Eventually profile data output by clang should be changed to that extension. - llvm-profdata merges two profiles. However, the name is more general, since it will likely pick up more tasks (such as summarizing a single profile). - llvm-profdata parses the current text-based format, but will be updated once we settle on a binary format. <rdar://problem/15949645> llvm-svn: 201535
-
- Feb 17, 2014
-
-
Marshall Clow authored
llvm-svn: 201534
-
Anders Carlsson authored
llvm-svn: 201533
-
Richard Smith authored
llvm-svn: 201532
-
Kevin Enderby authored
ldrd r6, r7 [r2, #15] simply gives an error and does not triggers an assertion. As Jim points out, the diagnostic is really strange here, but fixing that would be more complicated. The missing comma results in the parser expecting a construct like r2[2], which is the vector index thing the error message is talking about. That's not what the user intended, though, and there's nothing else in the instruction that looks at all like a vector. Yet more fallout from not having a real parser here and trying to do context-free generic matching for addressing modes. rdar://15097243 llvm-svn: 201531
-
Anders Waldenborg authored
This is implemented by handling assignments to the '.' pseudo symbol as ".org" directives. Differential Revision: http://llvm-reviews.chandlerc.com/D2625 llvm-svn: 201530
-
Bob Wilson authored
Previously, we made one traversal of the AST prior to codegen to assign counters to the ASTs and then propagated the count values during codegen. This patch now adds a separate AST traversal prior to codegen for the -fprofile-instr-use option to propagate the count values. The counts are then saved in a map from which they can be retrieved during codegen. This new approach has several advantages: 1. It gets rid of a lot of extra PGO-related code that had previously been added to codegen. 2. It fixes a serious bug. My original implementation (which was mailed to the list but never committed) used 3 counters for every loop. Justin improved it to move 2 of those counters into the less-frequently executed breaks and continues, but that turned out to produce wrong count values in some cases. The solution requires visiting a loop body before the condition so that the count for the condition properly includes the break and continue counts. Changing codegen to visit a loop body first would be a fairly invasive change, but with a separate AST traversal, it is easy to control the order of traversal. I've added a testcase (provided by Justin) to make sure this works correctly. 3. It improves the instrumentation overhead, reducing the number of counters for a loop from 3 to 1. We no longer need dedicated counters for breaks and continues, since we can just use the propagated count values when visiting breaks and continues. To make this work, I needed to make a change to the way we count case statements, going back to my original approach of not including the fall-through in the counter values. This was necessary because there isn't always an AST node that can be used to record the fall-through count. Now case statements are handled the same as default statements, with the fall-through paths branching over the counter increments. While I was at it, I also went back to using this approach for do-loops -- omitting the fall-through count into the loop body simplifies some of the calculations and make them behave the same as other loops. Whenever we start using this instrumentation for coverage, we'll need to add the fall-through counts into the counter values. llvm-svn: 201528
-
Bob Wilson authored
llvm-svn: 201527
-
Bob Wilson authored
llvm-svn: 201526
-
Anton Yartsev authored
This implements FIXME from Checker.cpp (FIXME: We want to return the package + name of the checker here.) and replaces hardcoded checker names with the new ones obtained via getCheckName().getName(). llvm-svn: 201525
-
Aaron Ballman authored
Forcing it to be an error when there is no Documentation list specified for an attribute. This is a bit of a (harmless) hack, but the FIXME explains why and when this hack can be removed. It's a justified hack because this prevents attribute authors from forgetting to add documentation when they add a new attribute. llvm-svn: 201524
-
Deepak Panickal authored
llvm-svn: 201523
-
Deepak Panickal authored
llvm-svn: 201522
-
Deepak Panickal authored
llvm-svn: 201521
-
Adrian Prantl authored
I'm holding this change to give maintainers of Darwin buildbots more time to update their toolchains. This reverts commit r201375. llvm-svn: 201520
-
Deepak Panickal authored
Remove nativecodegen as it forces the native target libraries to be linked in regardless of whether the target was specified in LLVM_TARGETS_TO_BUILD llvm-svn: 201519
-
Aaron Ballman authored
The default assignment operator could not be generated by all of the bots, but it's required by std::vector to operate properly. llvm-svn: 201518
-
Aaron Ballman authored
llvm-svn: 201517
-
Aaron Ballman authored
llvm-svn: 201516
-
Aaron Ballman authored
Implements a declarative approach to documenting individual attributes in Clang via a Documentation tablegen class. Also updates the internals manual with information about how to use this new, required, documentation feature. This patch adds some very, very sparse initial documentation for some attributes. Additional effort from attribute authors is greatly appreciated. llvm-svn: 201515
-
Kostya Serebryany authored
llvm-svn: 201514
-
Alexey Samsonov authored
llvm-svn: 201513
-
Patrik Hagglund authored
llvm-svn: 201512
-
Evgeniy Stepanov authored
llvm-svn: 201511
-
Evgeniy Stepanov authored
Also remove a reference to mach_override code that is long gone. llvm-svn: 201510
-
Kostya Serebryany authored
llvm-svn: 201509
-
Tim Northover authored
We later emit a proper error in the situations where this would trigger, so there's no need to check. rdar://problem/16040604 llvm-svn: 201508
-
Craig Topper authored
Fix diassembler handling of rex.b when mod=00/01/10 and bbb=101. Mod=00 should ignore the base register entirely. Mod=01/10 should treat this as R13 plus displacment. Fixes PR18860. llvm-svn: 201507
-
Alexey Samsonov authored
When the locale of a shell is set other than English locales or the C locale, The word 'Target' may be translated. Thus, with e.g. ja_JP locale, compiler-rt couldn't be built properly. Forcing LANG=C fixes the problem. Patch by Ogino Masanori. llvm-svn: 201506
-
Kostya Serebryany authored
llvm-svn: 201505
-
Daniel Jasper authored
Generally people seem to prefer wrapping the first function parameter over wrapping the trailing tokens "const", "override" and "final". This does not extend to function-like annotations and probably not to other non-standard annotations. Before: void someLongFunction(int SomeLongParameter) const { ... } After: void someLongFunction( int SomeLongParameter) const { ... } llvm-svn: 201504
-
Kostya Serebryany authored
llvm-svn: 201503
-
Elena Demikhovsky authored
llvm-svn: 201502
-
Gerolf Hoflehner authored
fix for null VectorizedValue assertion in the SLP Vectorizer (in function vectorizeTree()). radar://16064178 llvm-svn: 201501
-
Saleem Abdulrasool authored
Add some tests to explicitly validate handling of comma and non-comma separated arguments. llvm-svn: 201500
-
Saleem Abdulrasool authored
Until this point only macro definition with named parameters were parsed but the names were ignored. This adds support for using that information for named parameter instantiation. In order to support the full semantics of the keyword arguments, the arguments are no longer lazily initialised since the keyword arguments can be specified out of order and partially if they are defaulted. Prepopulate the arguments with the default value for any defaulted parameters, and then parse the specified arguments. This simplies some of the handling of the arguments in the inner loop since empty arguments simply increment the parameter index and move on. Note that keyword and positional arguments cannot be mixed. llvm-svn: 201499
-
- Feb 16, 2014
-
-
Mark Seaborn authored
NaCl's ARM ABI uses 16 byte stack alignment, so set that in ARMSubtarget.cpp. Using 16 byte alignment exposes an issue in code generation in which a varargs function leaves a 4 byte gap between the values of r1-r3 saved to the stack and the following arguments that were passed on the stack. (Previously, this code only needed to support 4 byte and 8 byte alignment.) With this issue, llc generated: varargs_func: sub sp, sp, #16 push {lr} sub sp, sp, #12 add r0, sp, #16 // Should be 20 stm r0, {r1, r2, r3} ldr r0, .LCPI0_0 // Address of va_list add r1, sp, #16 str r1, [r0] bl external_func Fix the bug by checking for "Align > 4". Also simplify the code by using OffsetToAlignment(), and update comments. Differential Revision: http://llvm-reviews.chandlerc.com/D2677 llvm-svn: 201497
-
Arnold Schwaighofer authored
During LSR of one loop we can run into a situation where we have to expand the start of a recurrence of a loop induction variable in this loop. This start value is a value derived of the induction variable of a preceeding loop. SCEV has cannonicalized this value to a different recurrence than the recurrence of the preceeding loop's induction variable (the type and/or step direction) has changed). When we come to instantiate this SCEV we created a second induction variable in this preceeding loop. This patch tries to base such derived induction variables of the preceeding loop's induction variable. This helps twolf on arm and seems to help scimark2 on x86. Reapply with a fix for the case of a value derived from a pointer. radar://15970709 llvm-svn: 201496
-
Rafael Espindola authored
llvm-svn: 201495
-
Rafael Espindola authored
Thanks to Elena Demikhovsky for noticing. llvm-svn: 201494
-