| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 235130
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This fixes a left-over efficiency issue in D8950.
As Andrew and Daniel suggested, we can store the candidates in a stack
and pop the top element when it does not dominate the current
instruction. This reduces the worst-case time complexity to O(n).
Test Plan: a new test in nary-add.ll that exercises this optimization.
Reviewers: broune, dberlin, meheff, atrick
Reviewed By: atrick
Subscribers: llvm-commits, sanjoy
Differential Revision: http://reviews.llvm.org/D9055
llvm-svn: 235129
|
| |
|
|
|
|
|
|
|
| |
attribute to be placed on Objective-C pointer typedef
to make them strong enough so on their "new" method
family no attempt is made to override these
types. rdar://20255473
llvm-svn: 235128
|
| |
|
|
|
|
| |
wildcards.
llvm-svn: 235127
|
| |
|
|
| |
llvm-svn: 235126
|
| |
|
|
| |
llvm-svn: 235125
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is very similar to D8486 / r232852 (vperm2). If we treat insertps intrinsics
as shufflevectors, we can optimize them better.
I've left all but the full zero case of the zero mask variants out of this patch.
I don't think those can be converted into a single shuffle in all cases, but I'd
be happy to be proven wrong as I was for vperm2f128.
Either way, we'd need to support whatever sequence we come up with for those cases
in the backend before converting them here.
Differential Revision: http://reviews.llvm.org/D8833
llvm-svn: 235124
|
| |
|
|
|
|
| |
Third time's the try.
llvm-svn: 235123
|
| |
|
|
| |
llvm-svn: 235122
|
| |
|
|
| |
llvm-svn: 235121
|
| |
|
|
|
|
| |
Turns out Windows is special. All library installs are RUNTIME.
llvm-svn: 235120
|
| |
|
|
|
|
| |
with the existing -objc-meta-data and -macho options for Mach-O files.
llvm-svn: 235119
|
| |
|
|
|
|
|
|
|
| |
virtual void
LanguageRuntime::ModulesDidLoad (const ModuleList &module_list);
Then reorganized how the objective C plug-in is notified so it will work for all LanguageRuntime subclasses.
llvm-svn: 235118
|
| |
|
|
|
|
| |
This happens a lot with simple cleanups after SimplifyCFG.
llvm-svn: 235117
|
| |
|
|
|
|
|
| |
VMCore was renamed to IR back in 2013. The relevant "core"
implementations were moved into the lib/IR directory at the same time.
llvm-svn: 235116
|
| |
|
|
|
|
|
| |
Allow `const`-qualified pointers to be used to construct `DebugLoc`s, as
a convenience.
llvm-svn: 235115
|
| |
|
|
| |
llvm-svn: 235114
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The CMake install command is defined as:
install(TARGETS targets... [EXPORT <export-name>]
[[ARCHIVE|LIBRARY|RUNTIME|FRAMEWORK|BUNDLE|
PRIVATE_HEADER|PUBLIC_HEADER|RESOURCE]
[DESTINATION <dir>]
[INCLUDES DESTINATION [<dir> ...]]
[PERMISSIONS permissions...]
[CONFIGURATIONS [Debug|Release|...]]
[COMPONENT <component>]
[OPTIONAL] [NAMELINK_ONLY|NAMELINK_SKIP]
] [...])
This means it can only take one parameter from the set of RUNTIME, LIBRARY, or ARCHIVE. If you set more than one of these it seems to gobble up the extra arguments and ignore the COMPONENT argument.
This adds a check to only set LIBRARY or ARCHIVE based on whether or not the library being built is shared.
llvm-svn: 235113
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
LLVM r235111 changed the `DIBuilder` API to stop using `DIDescriptor`
and its subclasses. Rolled into this was some tightening up of types:
- Scopes: `DIDescriptor` => `MDScope*`.
- Generic debug nodes: `DIDescriptor` => `DebugNode*`.
- Subroutine types: `DICompositeType` => `MDSubroutineType*`.
- Composite types: `DICompositeType` => `MDCompositeType*`.
Note that `DIDescriptor` wraps `MDNode`, and `DICompositeType` wraps
`MDCompositeTypeBase`.
It's this new type strictness that requires changes here.
llvm-svn: 235112
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As a step toward killing `DIDescriptor` and its subclasses, remove it
from the `DIBuilder` API. Replace the subclasses with appropriate
pointers from the new debug info hierarchy. There are a couple of
possible surprises in type choices for out-of-tree frontends:
- Subroutine types: `MDSubroutineType`, not `MDCompositeTypeBase`.
- Composite types: `MDCompositeType`, not `MDCompositeTypeBase`.
- Scopes: `MDScope`, not `MDNode`.
- Generic debug info nodes: `DebugNode`, not `MDNode`.
This is part of PR23080.
llvm-svn: 235111
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Add support for AArch64 v8.1 architecture. Briefly it is described on http://community.arm.com/groups/processors/blog/2014/12/02/the-armv8-a-architecture-and-its-ongoing-development
Reviewers: jmolloy
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D8493
llvm-svn: 235110
|
| |
|
|
|
|
|
|
| |
targets using qXfer:features:read packet. Only enabled if libxml2 enabled in build.
Differential Revision: http://reviews.llvm.org/D8999
llvm-svn: 235109
|
| |
|
|
|
|
| |
Looks like it broke the sanitizer-ppc64-linux1 build. Reverting for now.
llvm-svn: 235108
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: t.p.northover
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D8500
Patch by: Tom Coxon
llvm-svn: 235107
|
| |
|
|
|
|
|
|
|
| |
This started failing on Windows after my switch lowering change in r235101.
I suspect the error is unrelated, so adding a triple to pacify it
until it can be fixed. See the PR for details.
llvm-svn: 235106
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: t.p.northover
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D8499
Patch by: Tom Coxon
llvm-svn: 235105
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: jmolloy
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D8498
llvm-svn: 235104
|
| |
|
|
| |
llvm-svn: 235103
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: jmolloy
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D8584
Patch by: Tom Coxon
llvm-svn: 235102
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
tree (PR22262)
This is a major rewrite of the SelectionDAG switch lowering. The previous code
would lower switches as a binary tre, discovering clusters of cases
suitable for lowering by jump tables or bit tests as it went along. To increase
the likelihood of finding jump tables, the binary tree pivot was selected to
maximize case density on both sides of the pivot.
By not selecting the pivot in the middle, the binary trees would not always
be balanced, leading to performance problems in the generated code.
This patch rewrites the lowering to search for clusters of cases
suitable for jump tables or bit tests first, and then builds the binary
tree around those clusters. This way, the binary tree will always be balanced.
This has the added benefit of decoupling the different aspects of the lowering:
tree building and jump table or bit tests finding are now easier to tweak
separately.
For example, this will enable us to balance the tree based on profile info
in the future.
The algorithm for finding jump tables is O(n^2), whereas the previous algorithm
was O(n log n) for common cases, and quadratic only in the worst-case. This
doesn't seem to be major problem in practice, e.g. compiling a file consisting
of a 10k-case switch was only 30% slower, and such large switches should be rare
in practice. Compiling e.g. gcc.c showed no compile-time difference. If this
does turn out to be a problem, we could limit the search space of the algorithm.
This commit also disables all optimizations during switch lowering in -O0.
Differential Revision: http://reviews.llvm.org/D8649
llvm-svn: 235101
|
| |
|
|
| |
llvm-svn: 235100
|
| |
|
|
|
|
|
|
|
|
| |
on subtarget features
Fixed compilation with clang on some buildbots with "-Werror -Wmissing-field-initializers"
Related to: http://reviews.llvm.org/rL235089
llvm-svn: 235099
|
| |
|
|
| |
llvm-svn: 235098
|
| |
|
|
| |
llvm-svn: 235097
|
| |
|
|
|
|
|
|
|
|
|
| |
only.
Currently checks for active data-sharing attributes for variables are performed for found var decls. Instead these checks must be performed for canonical decls of these variables to avoid possible troubles with with the differently qualified re-declarations of the same variable, for example:
namespace A { int x; }
namespace B { using A::x; }
Both A::x and B::x actually reference the same object A::x and this fact must be taken into account during data-sharing attributes analysis.
llvm-svn: 235096
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Previously, this was only happening for functions, but because of .insn, objects can also be marked now.
Reviewers: dsanders
Reviewed By: dsanders
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D8007
llvm-svn: 235095
|
| |
|
|
| |
llvm-svn: 235094
|
| |
|
|
|
|
|
| |
also, deleting what appears to be a concatenation of a file with itself (How that compiled in the
first place?).
llvm-svn: 235093
|
| |
|
|
| |
llvm-svn: 235092
|
| |
|
|
|
|
|
| |
Required some tweaking of ValueMap to accommodate a move-only value
type. No functional change intended.
llvm-svn: 235091
|
| |
|
|
|
|
| |
Found by -Wrange-loop-analysis.
llvm-svn: 235090
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
features.
In order to introduce v8.1a-specific entities, Mappers should be aware of SubtargetFeatures available.
This patch introduces refactoring, that will then allow to easily introduce:
- v8.1-specific "pan" PState for PStateMapper (PAN extension)
- v8.1-specific sysregs for SysRegMapper (LOR,VHE extensions)
Reviewers: jmolloy
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D8496
Patch by Tom Coxon
llvm-svn: 235089
|
| |
|
|
|
|
|
|
| |
This was found in GCC PR65773 (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65773).
We shouldn't be taking a reference to the temporary that BuildMI returns, we must copy it.
llvm-svn: 235088
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: jmolloy
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D8504
llvm-svn: 235087
|
| |
|
|
| |
llvm-svn: 235086
|
| |
|
|
|
|
| |
and order fields according to declaration order.
llvm-svn: 235085
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This assembler directive marks the current label as an instruction label in microMIPS and MIPS16.
This initial implementation works only for microMIPS.
Reviewers: dsanders
Reviewed By: dsanders
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D8006
llvm-svn: 235084
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
When building the command-line for compilations during tests, append to
CFLAGS_EXTRAS and LD_EXTRAS to preserve switches set by the environment
(i.e. for cross compiling to test on another platform).
Test Plan:
TestCPP11EnumTypes.py passes testing from macosx -> linux remotely with cross
compiling args in CFLAGS_EXTRAS and LD_EXTRAS.
Differential Revision: http://reviews.llvm.org/D8942
llvm-svn: 235083
|
| |
|
|
|
|
| |
This reverts commit cbbeac14f0ddca71f6d8ff91cd05522bd23908e5.
llvm-svn: 235082
|
| |
|
|
|
|
| |
This reverts commit ec0a34f850eca0d97e0592236e0ac14083aa1c3d.
llvm-svn: 235081
|