- Sep 12, 2015
-
-
Joerg Sonnenberger authored
Differential Revision: http://reviews.llvm.org/D12642 llvm-svn: 247512
-
Simon Pilgrim authored
llvm-svn: 247511
-
Simon Pilgrim authored
llvm-svn: 247509
-
Simon Pilgrim authored
llvm-svn: 247508
-
Sanjay Patel authored
llvm-svn: 247507
-
Sanjay Patel authored
llvm-svn: 247506
-
Simon Pilgrim authored
llvm-svn: 247505
-
Simon Pilgrim authored
Improved InstCombine support for CVTPH2PS (F16C half 2 float conversion): <4 x float> @llvm.x86.vcvtph2ps.128(<8 x i16>) - only uses the bottom 4 i16 elements for the conversion. Added constant folding support. Differential Revision: http://reviews.llvm.org/D12731 llvm-svn: 247504
-
Simon Pilgrim authored
llvm-svn: 247502
-
Chandler Carruth authored
In some ways this is a very boring port to the new pass manager as there are no interesting analyses or dependencies or other oddities. However, this does introduce the first good example of a transformation pass with non-trivial state porting to the new pass manager. I've tried to carve out patterns here to replicate elsewhere, and would appreciate comments on whether folks like these patterns: - A common need in the new pass manager is to effectively lift the pass class and some of its state into a public header file. Prior to this, LLVM used anonymous namespaces to provide "module private" types and utilities, but that doesn't scale to cases where a public header file is needed and the new pass manager will exacerbate that. The pattern I've adopted here is to use the namespace-cased-name of the core pass (what would be a module if we had them) as a module-private namespace. Then utility and other code can be declared and defined in this namespace. At some point in the future, we could even have (conditionally compiled) code that used modules features when available to do the same basic thing. - I've split the actual pass run method in two in order to expose a private method usable by the old pass manager to wrap the new class with a minimum of duplicated code. I actually looked at a bunch of ways to automate or generate these, but they are all quite terrible IMO. The fundamental need is to extract the set of analyses which need to cross this interface boundary, and that will end up being too unpredictable to effectively encapsulate IMO. This is also a relatively small amount of boiler plate that will live a relatively short time, so I'm not too worried about the fact that it is boiler plate. The rest of the patch is totally boring but results in a massive diff (sorry). It just moves code around and removes or adds qualifiers to reflect the new name and nesting structure. Differential Revision: http://reviews.llvm.org/D12773 llvm-svn: 247501
-
Larisse Voufo authored
Clean up: Refactoring the hardcoded value of 6 for FindAvailableLoadedValue()'s parameter MaxInstsToScan. llvm-svn: 247497
-
Bruce Mitchener authored
Summary: This fixes a variety of typos in docs, code and headers. Subscribers: jholewinski, sanjoy, arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D12626 llvm-svn: 247495
-
Hal Finkel authored
We had asserts in PHINode::addIncoming to check that the value types matched the type of the PHI, and that the associated BB was not null. These did not catch, however, later uses of setIncomingValue and setIncomingBlock (which are called by addIncoming as well). Moving the asserts to PHINode::setIncoming* provides better coverage. NFC. llvm-svn: 247492
-
Adrian Prantl authored
llvm-svn: 247490
-
Davide Italiano authored
llvm-svn: 247483
-
- Sep 11, 2015
-
-
Davide Italiano authored
Differential Revision: http://reviews.llvm.org/D12776 llvm-svn: 247471
-
Yunzhong Gao authored
This is in order to give LTO clients a chance to do some clean-up before terminating the process. llvm-svn: 247461
-
Sanjay Patel authored
llvm-svn: 247454
-
Akira Hatanaka authored
realignment should be forced. With this commit, we can now force stack realignment when doing LTO and do so on a per-function basis. Also, add a new cl::opt option "stackrealign" to CommandFlags.h which is used to force stack realignment via llc's command line. Out-of-tree projects currently using -force-align-stack to force stack realignment should make changes to attach the attribute to the functions in the IR. Differential Revision: http://reviews.llvm.org/D11814 llvm-svn: 247450
-
Chris Bieneman authored
This is a follow-on to r247308. llvm-svn: 247443
-
David Majnemer authored
We used different conditions to determine if we should emit startproc vs endproc. Use the same condition to ensure that they will always be paired. This fixes PR24374. llvm-svn: 247435
-
Reid Kleckner authored
The rest of the EH pads are fine, since they have at most one label and take fewer operands for the personality. Old catchpad vs. new: %5 = catchpad [i8* bitcast (i32 ()* @"\01?filt$0@0@main@@" to i8*)] to label %__except.ret.10 unwind label %catchendblock.9 ----- %5 = catchpad [i8* bitcast (i32 ()* @"\01?filt$0@0@main@@" to i8*)] to label %__except.ret.10 unwind label %catchendblock.9 llvm-svn: 247433
-
Ahmed Bougacha authored
We used to have this magic "hasLoadLinkedStoreConditional()" callback, which really meant two things: - expand cmpxchg (to ll/sc). - expand atomic loads using ll/sc (rather than cmpxchg). Remove it, and, instead, introduce explicit callbacks: - bool shouldExpandAtomicCmpXchgInIR(inst) - AtomicExpansionKind shouldExpandAtomicLoadInIR(inst) Differential Revision: http://reviews.llvm.org/D12557 llvm-svn: 247429
-
Ahmed Bougacha authored
This lets us generalize its usage to the other atomic instructions. llvm-svn: 247428
-
NAKAMURA Takumi authored
This brings a warning. cl : Command line warning D9035: option 'Og-' has been deprecated and will be removed in a future release We should resolve PR11951 to remove this tweak. llvm-svn: 247427
-
Kostya Serebryany authored
llvm-svn: 247425
-
Daniel Sanders authored
llvm-svn: 247422
-
Daniel Sanders authored
llvm-svn: 247420
-
Daniel Sanders authored
It doesn't seem to like the '|&' in the test command. llvm-svn: 247418
-
Daniel Sanders authored
llvm-svn: 247417
-
Daniel Sanders authored
llvm-svn: 247416
-
Arnaud A. de Grandmaison authored
llvm-svn: 247415
-
Daniel Sanders authored
These tests were found by llvm-mc-fuzzer (see http://reviews.llvm.org/D12723) and were verified by checking the disassembler output is accepted by GAS. llvm-svn: 247414
-
Yaron Keren authored
Source code was assuming that llvm-config.h would be included somehow but up to r247253 that added #include "llvm/Support/Compiler.h" to StringRef.h the config file was not actually included. The inclusion of llvm-config.h caused a change of behaviour in tools/clang/test/Frontend/source-col-map.c: previously it would output the original UTF-8 but now it outputs <U+03B1>. llvm-svn: 247409
-
Daniel Sanders authored
These tests were found by llvm-mc-fuzzer (see http://reviews.llvm.org/D12723) and verified by checking the disassembler output is accepted by GAS. The problematic tests from the previous commit have been moved to valid-xfail.txt for now. Also, give invalid instructions some coverage. invalid-xfail.txt contains instructions that should be invalid but successfully disassemble. llvm-svn: 247407
-
Daniel Sanders authored
A small number of the added tests have operands that change on each round trip. llvm-svn: 247406
-
Daniel Sanders authored
These tests were found by llvm-mc-fuzzer (see http://reviews.llvm.org/D12723) and verified by checking the disassembler output is accepted by GAS. llvm-svn: 247405
-
NAKAMURA Takumi authored
It caused crash in MachineInstr::hasPropertyInBundle() since r247237. llvm-svn: 247395
-
NAKAMURA Takumi authored
llvm-svn: 247391
-
Frederic Riss authored
When cloning the debug info for a function that hasn't been linked, strip the DIEs from all location attributes that wouldn't contain any meaningful information anyway. This kind of situation can happen when a function got discarded by the linker, but its debug information is still wanted in the final link because it was marked as required as some other DIE dependency. The easiest way to get into that situation is to have using directives. They get linked unconditionally, but their targets might not always be present. llvm-svn: 247386
-