- Nov 13, 2013
-
-
Weiming Zhao authored
By default, the behavior of IT block generation will be determinated dynamically base on the arch (armv8 vs armv7). This patch adds backend options: -arm-restrict-it and -arm-no-restrict-it. The former one restricts the generation of IT blocks (the same behavior as thumbv8) for both arches. The later one allows the generation of legacy IT block (the same behavior as ARMv7 Thumb2) for both arches. Clang will support -mrestrict-it and -mno-restrict-it, which is compatible with GCC. llvm-svn: 194592
-
Marshall Clow authored
llvm-svn: 194591
-
Argyrios Kyrtzidis authored
No functionality change. llvm-svn: 194590
-
Hans Wennborg authored
This should fix the problem of snapshot builds created with MSVC 2012 not working for users with MSVC 2010, etc. Differential Revision: http://llvm-reviews.chandlerc.com/D2157 llvm-svn: 194589
-
David Blaikie authored
DIEHash: Move header include to be first in the implementation file to flush out header inclusion ordering issues llvm-svn: 194588
-
Greg Clayton authored
llvm-svn: 194587
-
Richard Sandiford authored
At the moment this is just the MC support. llvm-svn: 194585
-
Timur Iskhodzhanov authored
llvm-svn: 194584
-
Alexander Potapenko authored
llvm-svn: 194583
-
Benjamin Kramer authored
llvm-svn: 194582
-
Benjamin Kramer authored
Otherwise it's impossible to use it. Also don't include C++ headers in a C header. llvm-svn: 194581
-
Alexey Samsonov authored
llvm-svn: 194580
-
Alexey Samsonov authored
Invoke a fatal stack trace unwinder when ASan prints allocator-relevant error reports (double-free, alloc-dealloc-mismatch, invalid-free). Thus we'll be able to print complete stack trace even if allocation/free stacks are not stored (malloc_context_size=0). Based on the patch by Yuri Gribov! llvm-svn: 194579
-
Alexey Samsonov authored
llvm-svn: 194578
-
Alexey Samsonov authored
Summary: Fix a case when "FileCheck --check-prefix=CHECK --check-prefix=CHECKER" would silently ignore check-lines of the form: CHECKER: foo Reviewers: dsanders Reviewed By: dsanders CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2168 llvm-svn: 194577
-
Alexander Kornienko authored
Summary: Fixes http://llvm.org/PR17753 Reviewers: klimek Reviewed By: klimek CC: cfe-commits, klimek Differential Revision: http://llvm-reviews.chandlerc.com/D2159 llvm-svn: 194576
-
Rafael Espindola authored
Accepting quotes is a property of an assembler, not of an object file. For example, ELF can support any names for sections and symbols, but the gnu assembler only accepts quotes in some contexts and llvm-mc in a few more. LLVM should not produce different symbols based on a guess about which assembler will be reading the code it is printing. llvm-svn: 194575
-
Rafael Espindola authored
verifyFunction needs to call doInitialization to collect metadata and avoid crashing when verifying debug info in a function. But it should not call doFinalization since that is where the verifier will check declarations, variables and aliases, which is not desirable when one only wants to verify a function. A possible cleanup would be to split the class into a ModuleVerifier and FunctionVerifier. Issue reported by Ilia Filippov. Patch by Michael Kruse. llvm-svn: 194574
-
Alexander Potapenko authored
Fixes http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58994, which hadn't manifested in LLVM because libclang_rt.asan_osx_dynamic.dylib used to depend on the Foundation framework. Without that dependency some interceptors may be called from the system libraries before libSystem_initializer() is called, which lead to assertion failures in sanitizer_mac.cc (_NSGetEnviron() returns NULL). To fix the problem we fall back to the original functions in the common libsanitizer interceptors and the __cxa_atexit() interceptor on Darwin. This patch also prints a better error message in the case _NSGetEnviron() returns NULL. llvm-svn: 194573
-
https://code.google.com/p/address-sanitizer/issues/detail?id=233Kostya Serebryany authored
llvm-svn: 194572
-
Manuel Klimek authored
This allows compilation database implementations for distributed build systems to hand all data to the client to make parsing independent of the file system. llvm-svn: 194571
-
Vladimir Medic authored
llvm-svn: 194570
-
Zoran Jovanovic authored
llvm-svn: 194569
-
Alexey Samsonov authored
llvm-svn: 194568
-
Diego Novillo authored
This adds a new option -fprofile-sample-use=filename to Clang. It tells the driver to schedule the SampleProfileLoader pass and passes on the name of the profile file to use. llvm-svn: 194567
-
Diego Novillo authored
This adds a new scalar pass that reads a file with samples generated by 'perf' during runtime. The samples read from the profile are incorporated and emmited as IR metadata reflecting that profile. The profile file is assumed to have been generated by an external profile source. The profile information is converted into IR metadata, which is later used by the analysis routines to estimate block frequencies, edge weights and other related data. External profile information files have no fixed format, each profiler is free to define its own. This includes both the on-disk representation of the profile and the kind of profile information stored in the file. A common kind of profile is based on sampling (e.g., perf), which essentially counts how many times each line of the program has been executed during the run. The SampleProfileLoader pass is organized as a scalar transformation. On startup, it reads the file given in -sample-profile-file to determine what kind of profile it contains. This file is assumed to contain profile information for the whole application. The profile data in the file is read and incorporated into the internal state of the corresponding profiler. To facilitate testing, I've organized the profilers to support two file formats: text and native. The native format is whatever on-disk representation the profiler wants to support, I think this will mostly be bitcode files, but it could be anything the profiler wants to support. To do this, every profiler must implement the SampleProfile::loadNative() function. The text format is mostly meant for debugging. Records are separated by newlines, but each profiler is free to interpret records as it sees fit. Profilers must implement the SampleProfile::loadText() function. Finally, the pass will call SampleProfile::emitAnnotations() for each function in the current translation unit. This function needs to translate the loaded profile into IR metadata, which the analyzer will later be able to use. This patch implements the first steps towards the above design. I've implemented a sample-based flat profiler. The format of the profile is fairly simplistic. Each sampled function contains a list of relative line locations (from the start of the function) together with a count representing how many samples were collected at that line during execution. I generate this profile using perf and a separate converter tool. Currently, I have only implemented a text format for these profiles. I am interested in initial feedback to the whole approach before I send the other parts of the implementation for review. This patch implements: - The SampleProfileLoader pass. - The base ExternalProfile class with the core interface. - A SampleProfile sub-class using the above interface. The profiler generates branch weight metadata on every branch instructions that matches the profiles. - A text loader class to assist the implementation of SampleProfile::loadText(). - Basic unit tests for the pass. Additionally, the patch uses profile information to compute branch weights based on instruction samples. This patch converts instruction samples into branch weights. It does a fairly simplistic conversion: Given a multi-way branch instruction, it calculates the weight of each branch based on the maximum sample count gathered from each target basic block. Note that this assignment of branch weights is somewhat lossy and can be misleading. If a basic block has more than one incoming branch, all the incoming branches will get the same weight. In reality, it may be that only one of them is the most heavily taken branch. I will adjust this assignment in subsequent patches. llvm-svn: 194566
-
Alexey Samsonov authored
Summary: This fixes a subtle bug in new FileCheck feature added in r194343. When we search for the first satisfying check-prefix, we should actually return the first encounter of some check-prefix as a substring, even if it's not a part of valid check-line. Otherwise "FileCheck --check-prefix=FOO --check-prefix=BAR" with check file: FOO not a vaild check-line FOO: foo BAR: bar incorrectly accepted file: fog bar as it skipped the first two encounters of FOO, matching only BAR: line. Reviewers: arsenm, dsanders Reviewed By: dsanders CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2166 llvm-svn: 194565
-
Robert Lytton authored
llvm-svn: 194564
-
Sylvestre Ledru authored
llvm-svn: 194563
-
Vladimir Medic authored
This patch fixes a bug in floating point operands parsing, when instruction alias uses default register operand. llvm-svn: 194562
-
NAKAMURA Takumi authored
They are failing on clang-native-arm-cortex-a9. Please tweak MCJIT/lit.local.cfg, if this didn't satisfy bots. llvm-svn: 194561
-
Rui Ueyama authored
No functionality change. llvm-svn: 194560
-
Serge Pavlov authored
This patch fixes PR8264. Duplicate qualifiers already are diagnozed, now the same diagnostics is issued for duplicate function specifiers. Differential Revision: http://llvm-reviews.chandlerc.com/D2025 llvm-svn: 194559
-
NAKAMURA Takumi authored
They are reported as XPASSing. llvm-svn: 194558
-
NAKAMURA Takumi authored
Also, prune <stdlib.h>, seems stray. llvm-svn: 194557
-
Rui Ueyama authored
llvm-svn: 194556
-
Reed Kotler authored
specifically about the .space directive. This allows us to force large blocks of code to appear in test cases for things like constant islands without having to make giant test cases to force things like long branches to take effect. llvm-svn: 194555
-
Peter Zotov authored
Per discussion with Chris Lattner llvm-svn: 194554
-
Andrew Trick authored
llvm-svn: 194553
-
Rui Ueyama authored
This reverts commit r194551 because it broke the buildbot. llvm-svn: 194552
-