| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 183826
|
| |
|
|
|
|
|
| |
Most clients have already been moved from Path V1 to V2. The ones using V1
now include PathV1.h explicitly.
llvm-svn: 183801
|
| |
|
|
|
|
|
|
|
|
|
|
| |
For ARM on linux we use /proc/cpuinfo to detect the host CPU's features.
Linux derives these values without ever looking at the vendor of the
specific CPU implementation. Hence, it adds little value, if we parse
the output of /proc/cpuinfo only for certain vendors.
This patch enables us to derive the correct feature flags e.g. for Qualcomm
CPUs.
llvm-svn: 183790
|
| |
|
|
|
|
| |
This is preparation for replacing Path.h with PathV2.h.
llvm-svn: 183782
|
| |
|
|
| |
llvm-svn: 183780
|
| |
|
|
| |
llvm-svn: 183779
|
| |
|
|
| |
llvm-svn: 183778
|
| |
|
|
| |
llvm-svn: 183777
|
| |
|
|
| |
llvm-svn: 183775
|
| |
|
|
| |
llvm-svn: 183773
|
| |
|
|
| |
llvm-svn: 183770
|
| |
|
|
| |
llvm-svn: 183765
|
| |
|
|
| |
llvm-svn: 183764
|
| |
|
|
| |
llvm-svn: 183763
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
It will be tested in the next commit which moves another user to identify_magic.
Original message:
Fix an out of bounds array access.
We were looking at Magic[5] without checking Length. Since this path would not
return unless Length >= 18 anyway, just move the >= 18 check up.
llvm-svn: 183753
|
| |
|
|
| |
llvm-svn: 183752
|
| |
|
|
| |
llvm-svn: 183692
|
| |
|
|
| |
llvm-svn: 183669
|
| |
|
|
|
|
|
| |
We were looking at Magic[5] without checking Length. Since this path would not
return unless Length >= 18 anyway, just move the >= 18 check up.
llvm-svn: 183666
|
| |
|
|
|
|
| |
I will change identifyFileType to use a StringRef in the next patch.
llvm-svn: 183664
|
| |
|
|
|
|
| |
handle on Windows. Patch thanks to Kim Gräsman!
llvm-svn: 183621
|
| |
|
|
|
|
|
|
|
| |
This is needed in clang so one can check if the object needs the
destructor called after its memory was freed. This is useful when
creating many APInt/APFloat objects with placement new, where the
overhead of tracking the pointers for cleanup is significant.
llvm-svn: 183100
|
| |
|
|
| |
llvm-svn: 183073
|
| |
|
|
| |
llvm-svn: 183072
|
| |
|
|
| |
llvm-svn: 183054
|
| |
|
|
| |
llvm-svn: 183053
|
| |
|
|
| |
llvm-svn: 183052
|
| |
|
|
| |
llvm-svn: 183051
|
| |
|
|
|
|
|
|
| |
function APFloat::next(bool nextDown).
rdar://13852078
llvm-svn: 182945
|
| |
|
|
|
|
|
|
| |
use in APFloat IEEE-754R 2008 nextUp/nextDown function.
rdar://13852078
llvm-svn: 182801
|
| |
|
|
|
|
|
| |
Add a stringize method to make dumping a bit easier, and add a testcase
exercising a few different paths.
llvm-svn: 182692
|
| |
|
|
| |
llvm-svn: 182680
|
| |
|
|
|
|
|
|
|
|
| |
There was exactly one caller using this API right, the others were relying on
specific behavior of the default implementation. Since it's too hard to use it
right just remove it and standardize on the default behavior.
Defines away PR16132.
llvm-svn: 182636
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch builds on some existing code to do CFG reconstruction from
a disassembled binary:
- MCModule represents the binary, and has a list of MCAtoms.
- MCAtom represents either disassembled instructions (MCTextAtom), or
contiguous data (MCDataAtom), and covers a specific range of addresses.
- MCBasicBlock and MCFunction form the reconstructed CFG. An MCBB is
backed by an MCTextAtom, and has the usual successors/predecessors.
- MCObjectDisassembler creates a module from an ObjectFile using a
disassembler. It first builds an atom for each section. It can also
construct the CFG, and this splits the text atoms into basic blocks.
MCModule and MCAtom were only sketched out; MCFunction and MCBB were
implemented under the experimental "-cfg" llvm-objdump -macho option.
This cleans them up for further use; llvm-objdump -d -cfg now generates
graphviz files for each function found in the binary.
In the future, MCObjectDisassembler may be the right place to do
"intelligent" disassembly: for example, handling constant islands is just
a matter of splitting the atom, using information that may be available
in the ObjectFile. Also, better initial atom formation than just using
sections is possible using symbols (and things like Mach-O's
function_starts load command).
This brings two minor regressions in llvm-objdump -macho -cfg:
- The printing of a relocation's referenced symbol.
- An annotation on loop BBs, i.e., which are their own successor.
Relocation printing is replaced by the MCSymbolizer; the basic CFG
annotation will be superseded by more related functionality.
llvm-svn: 182628
|
| |
|
|
| |
llvm-svn: 182349
|
| |
|
|
|
|
| |
type signature computation.
llvm-svn: 182348
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes a bootstrapping problem with builds for Apple ARM targets.
Clang had the wrong prototype for __clear_cache with ARM targets. Rafael
fixed that in clang svn r181784 and r181810, but without those changes,
we can't build this code for ARM because clang reports an error about the
declaration in Memory.inc not matching the builtin declaration. Some of our
buildbots need to use an older compiler that doesn't have the clang fix.
Since __clear_cache is never used here when __APPLE__ is defined, I'm just
conditionalizing the declaration to match that. I also moved the declaration
of sys_icache_invalidate inside the conditional for __APPLE__ while I was at
it.
llvm-svn: 182223
|
| |
|
|
|
|
|
|
|
| |
lli's remote MCJIT code calls setExecutable just prior to running
code. In line with Darwin behaviour this seems to be the place to
invalidate any caches needed so that relocations can take effect
properly.
llvm-svn: 182213
|
| |
|
|
| |
llvm-svn: 181873
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
BitVector/SmallBitVector::reference::operator bool remain implicit since
they model more exactly a bool, rather than something else that can be
boolean tested.
The most common (non-buggy) case are where such objects are used as
return expressions in bool-returning functions or as boolean function
arguments. In those cases I've used (& added if necessary) a named
function to provide the equivalent (or sometimes negative, depending on
convenient wording) test.
One behavior change (YAMLParser) was made, though no test case is
included as I'm not sure how to reach that code path. Essentially any
comparison of llvm::yaml::document_iterators would be invalid if neither
iterator was at the end.
This helped uncover a couple of bugs in Clang - test cases provided for
those in a separate commit along with similar changes to `operator bool`
instances in Clang.
llvm-svn: 181868
|
| |
|
|
|
|
| |
This fixes the build with gcc in gnu++98 and gnu++11 mode.
llvm-svn: 181811
|
| |
|
|
|
|
| |
Patch by Brad Smith!
llvm-svn: 181808
|
| |
|
|
|
|
|
|
| |
GCC declares __clear_cache in the gnu modes (-std=gnu++98,
-std=gnu++11), but not in the strict modes (-std=c++98, -std=c++11). This patch
declares it and therefore fixes the build when using one of the strict modes.
llvm-svn: 181785
|
| |
|
|
|
|
| |
-14.5f + 225.0f" to 225.0f.
llvm-svn: 181715
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This patch allows using \n inside long help strings for command-line
options, so that all lines are equally indented. This is not a perfect solution,
as we don't (and probably don't want to) know about terminal width, but it
allows to format long help strings somehow readable without manually padding
them with spaces. A motivating example is -help output from clang-format (source
code in tools/clang-format/ClangFormat.cpp, see cl options offset, length,
style, and dump-config).
Reviewers: atrick, alexfh
Reviewed By: alexfh
CC: llvm-commits, rafael
Differential Revision: http://llvm-reviews.chandlerc.com/D779
llvm-svn: 181608
|
| |
|
|
|
|
|
|
| |
- previously formatted_raw_ostream tracked columns, now it tracks lines too
- used by (upcoming) DebugIR pass to know the line number to connect to each IR
instruction
llvm-svn: 181463
|
| |
|
|
|
|
|
|
| |
sink options) command line options at runtime.
Patch by Dan Liew!
llvm-svn: 181254
|
| |
|
|
|
|
| |
Patch by Dan Liew!
llvm-svn: 181253
|
| |
|
|
|
|
|
|
| |
constructor enables
Patch by Robert Wilhelm.
llvm-svn: 181138
|
| |
|
|
|
|
|
|
|
| |
AArch64 is going to need some kind of cache-invalidation in order to
successfully JIT since it has a weak memory-model. This is provided by
a __clear_cache builtin in libgcc, which acts very much like the
32-bit ARM equivalent (on platforms where it exists).
llvm-svn: 181129
|