| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 217001
|
| |
|
|
|
|
| |
Maybe MSVC will be happy now...
llvm-svn: 217000
|
| |
|
|
| |
llvm-svn: 216999
|
| |
|
|
|
|
| |
Remove a couple more initializer lists and constexpr dependencies.
llvm-svn: 216998
|
| |
|
|
|
|
|
|
| |
The bug shows up on systems that `#define _POSIX_CLOCK_MONOTONIC 0` to indicate
that users of CLOCK_MONOTONIC must check sysconf at runtime.
See: http://pubs.opengroup.org/onlinepubs/009695399/basedefs/unistd.h.html
llvm-svn: 216997
|
| |
|
|
| |
llvm-svn: 216996
|
| |
|
|
|
|
|
|
|
| |
Fix vector asan annotations with RAII.
Add a test.
Also, remove one dead function.
Review: http://reviews.llvm.org/D4170
llvm-svn: 216995
|
| |
|
|
|
|
| |
Remove more initializer lists, etc.
llvm-svn: 216994
|
| |
|
|
|
|
| |
so don't emit the unused itinerary variables
llvm-svn: 216993
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
detct unwind loops but there was a code path through there (using
architecture default unwind plans) that didn't do the check, and
could end up with an infinite loop unwind. Move that code into a
separate method and call it from both places where it is needed.
Also remove the use of ABI::FunctionCallsChangeCFA in that check.
I thought about it a lot and none of the architecutres that we're
supporting today can have a looping CFA.
Since the unwinder isn't using ABI::FunctionCallsChangeCFA() and
ABI::StackUsesFrames(), and the unwinder was the only reason
those methods exists, I removed them from the ABI and all its
plugins.
<rdar://problem/17364005>
llvm-svn: 216992
|
| |
|
|
|
|
| |
MSVC 2012 does not understand initializer lists; remove them.
llvm-svn: 216991
|
| |
|
|
| |
llvm-svn: 216990
|
| |
|
|
|
|
|
|
| |
Fix PR18364.
Patch by Dimitry Andric.
llvm-svn: 216989
|
| |
|
|
| |
llvm-svn: 216988
|
| |
|
|
|
|
|
|
| |
Fixes this (the warning is right, the unsigned value is not negative):
lib/Analysis/StratifiedSets.h:689:53: warning: comparison of unsigned expression >= 0 is always true [-Wtautological-compare]
bool inbounds(StratifiedIndex N) const { return N >= 0 && N < Links.size(); }
llvm-svn: 216987
|
| |
|
|
|
|
| |
This reinstates r215113.
llvm-svn: 216986
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This uses the target-dependent selection code for shifts first, which allows us
to create better code for shifts with immediates and sign-/zero-extend folding.
Vector type are not handled yet and the code falls back to target-independent
instruction selection for these cases.
This fixes rdar://problem/17907920.
llvm-svn: 216985
|
| |
|
|
|
|
|
|
|
|
|
|
| |
is supported. NFCI.
FastISel for AArch64 supports more value types than are actually legal. Use a
dedicated helper function to reflect this.
It is very similar to the isLoadStoreTypeLegal function, with the exception
that vector types are not supported yet.
llvm-svn: 216984
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The code is buggy and barely tested. It is also mostly boilerplate.
(This includes MCObjectDisassembler, which is the interface to that
functionality)
Following an IRC discussion with Jim Grosbach, it seems sensible to just
nuke the whole lot of functionality, and dig it up from VCS if
necessary (I hope not!).
All of this stuff appears to have been added in a huge patch dump (look
at the timeframe surrounding e.g. r182628) where almost every patch
seemed to be untested and not reviewed before being committed.
Post-review responses to the patches were never addressed. I don't think
any of it would have passed pre-commit review.
I doubt anyone is depending on this, since this code appears to be
extremely buggy. In limited testing that Michael Spencer and I did, we
couldn't find a single real-world object file that wouldn't crash the
CFG reconstruction stuff. The symbolizer stuff has O(n^2) behavior and
so is not much use to anyone anyway. It seemed simpler to remove them as
a whole. Most of this code is boilerplate, which is the only way it was
able to scrape by 60% coverage.
HEADSUP: Modules folks, some files I nuked were referenced from
include/llvm/module.modulemap; I just deleted the references. Hopefully
that is the right fix (one was a FIXME though!).
llvm-svn: 216983
|
| |
|
|
|
|
|
|
| |
Approved by Jim Grosbach, Lang Hames, Rafael Espindola.
This reinstates commits r215111, 215115, 215116, 215117, 215136.
llvm-svn: 216982
|
| |
|
|
|
|
|
| |
The number is just a constant, and this should make MSVC happy (or at least
happier).
llvm-svn: 216981
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The only valid lowering of atomic stores in the X86 backend was mov from
register to memory. As a result, storing an immediate required a useless copy
of the immediate in a register. Now these can be compiled as a simple mov.
Similarily, adding/and-ing/or-ing/xor-ing an
immediate to an atomic location (but through an atomic_store/atomic_load,
not a fetch_whatever intrinsic) can now make use of an 'add $imm, x(%rip)'
instead of using a register. And the same applies to inc/dec.
This second point matches the first issue identified in
http://llvm.org/bugs/show_bug.cgi?id=17281
llvm-svn: 216980
|
| |
|
|
|
|
| |
Attempt to fix the MSVC build by not using constexpr.
llvm-svn: 216979
|
| |
|
|
|
|
|
| |
Add -use-cfl-aa (and -use-cfl-aa-in-codegen) to add CFL AA in the default pass
managers (for easy testing).
llvm-svn: 216978
|
| |
|
|
|
|
| |
This fixes a warning accidentally introduced in r216943.
llvm-svn: 216977
|
| |
|
|
| |
llvm-svn: 216976
|
| |
|
|
|
|
| |
This fixes PR20839, which was a bug in r216949.
llvm-svn: 216975
|
| |
|
|
|
|
|
|
|
| |
behaviour
In theory, alignPtr() could push a pointer beyond the end of the current slab, making
comparisons with that pointer undefined behaviour. Use an integer type to avoid this.
llvm-svn: 216973
|
| |
|
|
|
|
| |
Wagner. This speeds up asan (at least on SPEC) by 1%-5% or more. Also fix lint in dfsan.
llvm-svn: 216972
|
| |
|
|
|
|
| |
This will help with enabling misched
llvm-svn: 216971
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This provides an implementation of CFL alias analysis (including some
supporting data structures). Currently, we don't have any extremely fancy
features, sans some interprocedural analysis (i.e. no field sensitivity, etc.),
and we do best sitting behind BasicAA + TBAA. In such a configuration, we take
~0.6-0.8% of total compile time, and give ~7-8% NoAlias responses to queries
TBAA and BasicAA couldn't answer when bootstrapping LLVM. In testing this on
other projects, we've seen up to 10.5% of queries dropped by BasicAA+TBAA
answered with NoAlias by this algorithm.
Patch by George Burgess IV (with minor modifications by me -- mostly adapting
some BasicAA tests), thanks!
llvm-svn: 216970
|
| |
|
|
|
|
| |
directly written in strictly-conforming source code).
llvm-svn: 216969
|
| |
|
|
| |
llvm-svn: 216964
|
| |
|
|
|
|
|
|
|
|
|
| |
This change moves FastISel for AArch64 to target-dependent instruction selection
only. This change replicates the existing target-independent behavior, therefore
there are no changes to the unit tests or new tests.
Future changes will take advantage of this change and update functionality
and unit tests.
llvm-svn: 216955
|
| |
|
|
| |
llvm-svn: 216953
|
| |
|
|
| |
llvm-svn: 216952
|
| |
|
|
|
|
| |
http://reviews.llvm.org/D4045
llvm-svn: 216949
|
| |
|
|
|
|
| |
Change by Stephane Sezer.
llvm-svn: 216948
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
selection. NFC.
This allows the target to disable target-independent instruction selection and
jump directly into the target-dependent instruction selection code.
This can be beneficial for targets, such as AArch64, which could emit much
better code, but never got a chance to do so, because the target-independent
instruction selector was able to find an instruction sequence.
llvm-svn: 216947
|
| |
|
|
|
|
| |
instruction. radar://18144665
llvm-svn: 216946
|
| |
|
|
|
|
|
|
| |
On operating systems like the BSDs, it is typically the case that
/usr/bin/python does not exist. We should therefore use /usr/bin/env
instead. This is also done in various other scripts in tools/.
llvm-svn: 216945
|
| |
|
|
| |
llvm-svn: 216944
|
| |
|
|
| |
llvm-svn: 216943
|
| |
|
|
|
|
|
|
|
| |
We duplicate ~30 lines of code to lower FABS and FNEG for x86, so this patch combines them into one function.
No functional change intended, so no additional test cases. Test-suite behavior is unchanged.
Differential Revision: http://reviews.llvm.org/D5064
llvm-svn: 216942
|
| |
|
|
|
|
|
|
| |
Some editors create hidden file backups in the same
directory as the file, and it's annoying when cmake
errors on them.
llvm-svn: 216941
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
AtomicRMW
Summary:
MemoryDependenceAnalysis is currently cautious when the QueryInstr is an atomic
load or store, but I forgot to check for atomic cmpxchg/atomicrmw. This patch
is a way of fixing that, and making it less brittle (i.e. no risk that I forget
another possible kind of atomic, even if the IR ends up changing in the future),
by adding a fallback checking mayReadOrWriteFromMemory.
Thanks to Philip Reames for finding this bug and suggesting this solution in
http://reviews.llvm.org/D4845
Sadly, I don't see how to add a test for this, since the passes depending on
MemoryDependenceAnalysis won't trigger for an atomic rmw anyway. Does anyone
see a way for testing it?
Test Plan: none possible at first sight
Reviewers: jfb, reames
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D5019
llvm-svn: 216940
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
"Setting" does not equal "copying". This bug has sat dormant for 2 reasons:
1. The unit test was not adequate.
2. Every current user of the "copyFastMathFlags" API is operating on a new instruction.
(ie, all existing fast-math flags are off). If you copy flags to an existing
instruction that has some flags on already, you will not necessarily turn them off
as expected.
I uncovered this bug while trying to implement a fix for PR20802.
llvm-svn: 216939
|
| |
|
|
| |
llvm-svn: 216938
|
| |
|
|
| |
llvm-svn: 216937
|
| |
|
|
|
|
| |
Fixes PR20731.
llvm-svn: 216936
|