- Mar 18, 2014
-
-
Manuel Jacob authored
Summary: X86BaseInfo.h defines an enum for the offset of each operand in a memory operand sequence. Some code uses it and some does not. This patch replaces (hopefully) all remaining locations where an integer literal was used instead of this enum. No functionality change intended. Reviewers: nadav CC: llvm-commits, t.p.northover Differential Revision: http://llvm-reviews.chandlerc.com/D3108 llvm-svn: 204158
-
Krzysztof Parzyszek authored
llvm-svn: 204157
-
Alexander Kornienko authored
Reviewers: djasper Reviewed By: djasper CC: cfe-commits, klimek Differential Revision: http://llvm-reviews.chandlerc.com/D3110 llvm-svn: 204156
-
Bill Schmidt authored
When converting a signed 32-bit integer to double-precision floating point on hardware without a lfiwax instruction, we have to instead use a lfd followed by fcfid. We were erroneously offsetting the address by 4 bytes in preparation for either a lfiwax or lfiwzx when generating the lfd. This fixes that silly error. This was not caught in the test suite since the conversion tests were run with -mcpu=pwr7, which implies availability of lfiwax. I've added another test case for older hardware that checks the code we expect in the absence of lfiwax and other flavors of fcfid. There are fewer tests in this test case because we punt to DAG selection in more cases on older hardware. (We must generate complex fiddly sequences in those cases, and there is marginal benefit in duplicating that logic in fast-isel.) llvm-svn: 204155
-
Dmitry Vyukov authored
llvm-svn: 204154
-
Marshall Clow authored
llvm-svn: 204153
-
Evgeniy Stepanov authored
Compiler-rt part of MSan implementation of advanced origin tracking, when we record not only creation point, but all locations where an uninitialized value was stored to memory, too. llvm-svn: 204152
-
Evgeniy Stepanov authored
LLVM part of MSan implementation of advanced origin tracking, when we record not only creation point, but all locations where an uninitialized value was stored to memory, too. llvm-svn: 204151
-
Dmitry Vyukov authored
the first flags is to enable printing of the second stack per edge llvm-svn: 204150
-
Dmitry Vyukov authored
llvm-svn: 204149
-
Dmitry Vyukov authored
llvm-svn: 204148
-
Dmitry Vyukov authored
llvm-svn: 204146
-
Alexey Samsonov authored
llvm-svn: 204145
-
Matthew Curtis authored
Test doesn't actually require production of an object file and for some targets (e.g. hexagon) an assembler is not always available when lit tests are run. llvm-svn: 204144
-
Alexey Bataev authored
llvm-svn: 204143
-
Diego Novillo authored
Summary: The compiler does not always generate linkage names. If a function has been inlined and its body elided, its linkage name may not be generated. When the binary executes, the profiler will use its unmangled name when attributing samples. This results in unmangled names in the input profile. We are currently failing hard when this happens. However, in this case all that happens is that we fail to attribute samples to the inlined function. While this means fewer optimization opportunities, it should not cause a compilation failure. This patch accepts all valid function names, regardless of whether they were mangled or not. Reviewers: chandlerc CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D3087 llvm-svn: 204142
-
Dmitry Vyukov authored
this is necessaary because dlsym can call malloc, which can lock mutexes that we intercept llvm-svn: 204141
-
Manuel Klimek authored
Due to not resetting the fake rparen data on the token when iterating over annotated lines, we would pop the last element of the paren stack. This patch fixes the underlying root cause, and makes the code more robust against similar problems in the future: - reset the first token when iterating on the same annotated lines due to preprocessor branches - never pop the last element from the paren stack, so we do not crash, but rather incorrectly format - add assert()s so we can figure out if our assumptions are violated llvm-svn: 204140
-
Alexey Samsonov authored
llvm-svn: 204139
-
NAKAMURA Takumi authored
llvm-svn: 204138
-
Alexander Kornienko authored
The revision I'm reverting breaks handling of transitive aliases. This blocks us and breaks sanitizer bootstrap: http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap/builds/2651 (and checked locally by Alexey). This revision is the result of: svn merge -r204059:204058 -r204028:204027 -r203962:203961 . + the regression test added to test/MC/ELF/alias.s Another way to reproduce the regression with clang: $ cat q.c void a1(); void a2() __attribute__((alias("a1"))); void a3() __attribute__((alias("a2"))); void a1() {} $ ~/work/llvm-build/bin/clang-3.5-good -c q.c && mv q.o good.o && \ ~/work/llvm-build/bin/clang-3.5-bad -c q.c && mv q.o bad.o && \ objdump -t good.o bad.o good.o: file format elf64-x86-64 SYMBOL TABLE: 0000000000000000 l df *ABS* 0000000000000000 q.c 0000000000000000 l d .text 0000000000000000 .text 0000000000000000 l d .data 0000000000000000 .data 0000000000000000 l d .bss 0000000000000000 .bss 0000000000000000 l d .comment 0000000000000000 .comment 0000000000000000 l d .note.GNU-stack 0000000000000000 .note.GNU-stack 0000000000000000 l d .eh_frame 0000000000000000 .eh_frame 0000000000000000 g F .text 0000000000000006 a1 0000000000000000 g F .text 0000000000000006 a2 0000000000000000 g F .text 0000000000000006 a3 bad.o: file format elf64-x86-64 SYMBOL TABLE: 0000000000000000 l df *ABS* 0000000000000000 q.c 0000000000000000 l d .text 0000000000000000 .text 0000000000000000 l d .data 0000000000000000 .data 0000000000000000 l d .bss 0000000000000000 .bss 0000000000000000 l d .comment 0000000000000000 .comment 0000000000000000 l d .note.GNU-stack 0000000000000000 .note.GNU-stack 0000000000000000 l d .eh_frame 0000000000000000 .eh_frame 0000000000000000 g F .text 0000000000000006 a1 0000000000000000 g F .text 0000000000000006 a2 0000000000000000 g .text 0000000000000000 a3 llvm-svn: 204137
-
Alexey Bataev authored
llvm-svn: 204135
-
Renato Golin authored
llvm-svn: 204134
-
NAKAMURA Takumi authored
llvm-svn: 204132
-
Evgeniy Stepanov authored
Not only is it slower than the alternative, but also subtly broken. This commit does not change the default behavior. llvm-svn: 204131
-
Alon Mishne authored
Also changes the iterators to return actual DI type over MDNode. llvm-svn: 204130
-
Viktor Kutuzov authored
llvm-svn: 204129
-
Evgeniy Stepanov authored
Google is re-licensing this code under the standard dual license of compiler-rt. llvm-svn: 204128
-
Dmitry Vyukov authored
llvm-svn: 204127
-
Dmitry Vyukov authored
still experimental llvm-svn: 204126
-
Evgeniy Stepanov authored
llvm-svn: 204125
-
Dmitry Vyukov authored
llvm-svn: 204124
-
Craig Topper authored
[C++11] Mark the target fast isel classes as 'final' so that the compiler can de-virtualize some of the internal calls. llvm-svn: 204123
-
Alexey Samsonov authored
llvm-svn: 204122
-
NAKAMURA Takumi authored
llvm-svn: 204121
-
Alexey Samsonov authored
[C++11] Change the interface of getCOFF{Section,Relocation,Symbol} to make it work with range-based for loops. Reviewers: ruiu Reviewed By: ruiu CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D3097 llvm-svn: 204120
-
Dmitry Vyukov authored
llvm-svn: 204119
-
NAKAMURA Takumi authored
V_CNDMASK_B32_e64 v0, v0, -1.#QNAN0e+00, s[2:3], 0, 0, 0, 0 FIXME: We really need to implement our formatter... llvm-svn: 204118
-
NAKAMURA Takumi authored
llvm-svn: 204117
-
NAKAMURA Takumi authored
llvm-svn: 204116
-