summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Support
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove Path::makeExecutableOnDisk.Rafael Espindola2013-06-122-11/+0
| | | | llvm-svn: 183826
* Move PathV2.h to Path.hRafael Espindola2013-06-111-1/+1
| | | | | | | Most clients have already been moved from Path V1 to V2. The ones using V1 now include PathV1.h explicitly. llvm-svn: 183801
* Make host ARM CPU feature detection independent of the vendorTobias Grosser2013-06-111-30/+20
| | | | | | | | | | | | 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
* Include PathV1.h in files that use it.Rafael Espindola2013-06-112-0/+2
| | | | | | This is preparation for replacing Path.h with PathV2.h. llvm-svn: 183782
* Remove Path::getDirname.Rafael Espindola2013-06-113-49/+0
| | | | llvm-svn: 183780
* Remove Path::getBasename.Rafael Espindola2013-06-112-32/+0
| | | | llvm-svn: 183779
* Remove Path::getLast.Rafael Espindola2013-06-112-39/+0
| | | | llvm-svn: 183778
* Remove GetDLLSuffix.Rafael Espindola2013-06-111-4/+0
| | | | llvm-svn: 183777
* Remove GetRootDirectory.Rafael Espindola2013-06-112-15/+0
| | | | llvm-svn: 183775
* Remove GetUserHomeDirectory.Rafael Espindola2013-06-112-23/+0
| | | | llvm-svn: 183773
* Remove GetSystemLibraryPaths.Rafael Espindola2013-06-113-64/+0
| | | | llvm-svn: 183770
* Remove Path::GetBitcodeLibraryPaths.Rafael Espindola2013-06-112-34/+0
| | | | llvm-svn: 183765
* Remove unused FindLibrary function.Rafael Espindola2013-06-111-17/+0
| | | | llvm-svn: 183764
* Remove sys::identifyFileType.Rafael Espindola2013-06-111-117/+0
| | | | llvm-svn: 183763
* Port r183666 to identify_magic.Rafael Espindola2013-06-111-2/+3
| | | | | | | | | | | | | 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
* Fix variable name.Rafael Espindola2013-06-111-29/+29
| | | | llvm-svn: 183752
* Add a missing 'e'.Rafael Espindola2013-06-101-1/+1
| | | | llvm-svn: 183692
* Pass a StringRef to sys::identifyFileType.Rafael Espindola2013-06-101-6/+6
| | | | llvm-svn: 183669
* Fix an out of bounds array access.Rafael Espindola2013-06-101-2/+3
| | | | | | | 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
* Update for current naming conventions.Rafael Espindola2013-06-101-30/+31
| | | | | | I will change identifyFileType to use a StringRef in the next patch. llvm-svn: 183664
* sys::process::get_id() now returns the process ID instead of a process ↵Aaron Ballman2013-06-081-1/+1
| | | | | | handle on Windows. Patch thanks to Kim Gräsman! llvm-svn: 183621
* Introduce needsCleanup() for APFloat and APInt.Manuel Klimek2013-06-031-1/+1
| | | | | | | | | 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
* APInt: Simplify code. No functionality change.Benjamin Kramer2013-06-011-36/+2
| | | | llvm-svn: 183073
* APFloat: Use isDenormal instead of hand-rolled code to check for denormals.Benjamin Kramer2013-06-011-1/+1
| | | | llvm-svn: 183072
* Add support for adding the contents of a StringRef to the MD5 hash.Eric Christopher2013-05-311-0/+8
| | | | llvm-svn: 183054
* Convert more unsigned char -> uint8_t.Eric Christopher2013-05-311-1/+1
| | | | llvm-svn: 183053
* Fix comment.Eric Christopher2013-05-311-1/+1
| | | | llvm-svn: 183052
* Move "unsigned char" -> "uint8_t".Eric Christopher2013-05-311-8/+8
| | | | llvm-svn: 183051
* Implement IEEE-754R 2008 nextUp/nextDown functions in the guise of the ↵Michael Gottesman2013-05-301-20/+228
| | | | | | | | function APFloat::next(bool nextDown). rdar://13852078 llvm-svn: 182945
* [APInt] Implement tcDecrement as a counterpart to tcIncrement. This is for ↵Michael Gottesman2013-05-281-0/+14
| | | | | | | | use in APFloat IEEE-754R 2008 nextUp/nextDown function. rdar://13852078 llvm-svn: 182801
* ArrayRef-ize MD5 and clean up a few variable names.Eric Christopher2013-05-241-20/+32
| | | | | | | Add a stringize method to make dumping a bit easier, and add a testcase exercising a few different paths. llvm-svn: 182692
* Replace Count{Leading,Trailing}Zeros_{32,64} with count{Leading,Trailing}Zeros.Michael J. Spencer2013-05-241-5/+5
| | | | llvm-svn: 182680
* Remove the Copied parameter from MemoryObject::readBytes.Benjamin Kramer2013-05-243-21/+7
| | | | | | | | | | 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
* MC: Disassembled CFG reconstruction.Ahmed Bougacha2013-05-242-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add cmake bits for md5.Eric Christopher2013-05-211-0/+1
| | | | llvm-svn: 182349
* Add an md5 library derived from a public domain implementation for dwarf4Eric Christopher2013-05-211-0/+266
| | | | | | type signature computation. llvm-svn: 182348
* Remove declaration of __clear_cache for __APPLE__. <rdar://problem/13924072>Bob Wilson2013-05-191-0/+3
| | | | | | | | | | | | | | | 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
* Invalidate instruction cache when setting memory to be executable.Tim Northover2013-05-191-0/+3
| | | | | | | | | 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
* Fix build on WindowsTimur Iskhodzhanov2013-05-151-0/+1
| | | | llvm-svn: 181873
* Use only explicit bool conversion operatorsDavid Blaikie2013-05-152-2/+2
| | | | | | | | | | | | | | | | | | | | | | | 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
* Fix __clear_cache declaration.Rafael Espindola2013-05-141-1/+1
| | | | | | This fixes the build with gcc in gnu++98 and gnu++11 mode. llvm-svn: 181811
* Recognize sparc64 as an alias for sparcv9 triples.Jakob Stoklund Olesen2013-05-141-1/+1
| | | | | | Patch by Brad Smith! llvm-svn: 181808
* Declare __clear_cache.Rafael Espindola2013-05-141-0/+1
| | | | | | | | 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
* Fix a bug that APFloat::fusedMultiplyAdd() mistakenly evaluate "14.5f * ↵Shuxin Yang2013-05-131-2/+27
| | | | | | -14.5f + 225.0f" to 225.0f. llvm-svn: 181715
* Better output for long help strings for command-line options.Alexander Kornienko2013-05-101-8/+16
| | | | | | | | | | | | | | | | | | | | | 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
* Add line tracking support to FormattedStream Daniel Malea2013-05-081-20/+25
| | | | | | | | - 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
* Implemented public interface for modifying registered (not positional or ↵Andrew Trick2013-05-061-0/+10
| | | | | | | | sink options) command line options at runtime. Patch by Dan Liew! llvm-svn: 181254
* Support command line option categories.Andrew Trick2013-05-061-20/+198
| | | | | | Patch by Dan Liew! llvm-svn: 181253
* Add ArrayRef constructor from None, and do the cleanups that this ↵Dmitri Gribenko2013-05-051-1/+1
| | | | | | | | constructor enables Patch by Robert Wilhelm. llvm-svn: 181138
* AArch64: use __clear_cache under GCCish environmentsTim Northover2013-05-041-1/+1
| | | | | | | | | 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
OpenPOWER on IntegriCloud