- Jan 19, 2014
-
-
Chandler Carruth authored
one, but not create one. This is useful in the verifier when we want to query the constant if it exists but not create one. To be used in an upcoming commit. llvm-svn: 199568
-
- Jan 18, 2014
-
-
Eli Bendersky authored
It's handled similarly to the other casts. CastInst::Create already knows how to handle it. llvm-svn: 199565
-
Nick Lewycky authored
Don't refuse to transform constexpr(call(arg, ...)) to call(constexpr(arg), ...)) just because the function has multiple return values even if their return types are the same. Patch by Eduard Burtescu! llvm-svn: 199564
-
Benjamin Kramer authored
PR18524. llvm-svn: 199559
-
NAKAMURA Takumi authored
llvm-tblgen is not built when external LLVM_TABLEGEN is specified. Even then, llvm-tblgen should be built for testing tblgen itself. llvm-svn: 199558
-
Benjamin Kramer authored
PR18532. llvm-svn: 199553
-
Benjamin Kramer authored
Will be used soon. llvm-svn: 199552
-
Adrian Prantl authored
llvm-svn: 199537
-
Adrian Prantl authored
getOrCreateSubprogramDIE to avoid attributes being added twice when DIEs are merged. rdar://problem/15842330. llvm-svn: 199536
-
Owen Anderson authored
Fix more instances of dropped fast math flags when optimizing FADD instructions. All found by inspection (aka grep). llvm-svn: 199528
-
Reid Kleckner authored
Summary: The only current use of this flag is to mark the alloca as dynamic, even if its in the entry block. The stack adjustment for the alloca can never be folded into the prologue because the call may clear it and it has to be allocated at the top of the stack. Reviewers: majnemer CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2571 llvm-svn: 199525
-
- Jan 17, 2014
-
-
Justin Bogner authored
Patch by Daniel Reynaud! llvm-svn: 199523
-
Juergen Ributzka authored
llvm-svn: 199521
-
Rui Ueyama authored
llvm-svn: 199519
-
Rui Ueyama authored
llvm-svn: 199518
-
Juergen Ributzka authored
This patch adds two new target-independent calling conventions for runtime calls - PreserveMost and PreserveAll. The target-specific implementation for X86-64 is defined as following: - Arguments are passed as for the default C calling convention - The same applies for the return value(s) - PreserveMost preserves all GPRs - except R11 - PreserveAll preserves all GPRs and all XMMs/YMMs - except R11 Reviewed by Lang and Philip llvm-svn: 199508
-
Daniel Sanders authored
Summary: $rs and $rt were the wrong way round in the .td and the testcase wasn't strict enough to detect the mistake. Reviewers: matheusalmeida Reviewed By: matheusalmeida Differential Revision: http://llvm-reviews.chandlerc.com/D2554 llvm-svn: 199498
-
Daniel Sanders authored
No functional change since the InstrItinData's were duplicated llvm-svn: 199497
-
Daniel Sanders authored
IIImul -> II_MUL IIImult -> II_MULT, II_MULTU, II_MADD, II_MADDU, II_MSUB, II_MSUBU, II_DMULT, II_DMULTU No functional change since the InstrItinData's have been duplicated. llvm-svn: 199495
-
Daniel Sanders authored
No functional change since the InstrItinData's have been duplicated. llvm-svn: 199493
-
Renato Golin authored
Fix MLA defs to use register class GPRnopc. Add encoding tests for multiply instructions. (Alias for MUL/SMLAL/UMLAL added by r199026.) Patch by Zhaoshi. llvm-svn: 199491
-
Chandler Carruth authored
and tweak comments prior to more invasive surgery. Also clean up some other non-doxygen comments, and run clang-format over the parts that are going to change dramatically in subsequent commits so that those don't get cluttered with formatting changes. No functionality changed. llvm-svn: 199489
-
Kostya Serebryany authored
- add a mode for collecting per-block coverage (-asan-coverage=2). So far the implementation is naive (all blocks are instrumented), the performance overhead on top of asan could be as high as 30%. - Make sure the one-time calls to __sanitizer_cov are moved to function buttom, which in turn required to copy the original debug info into the call insn. Here is the performance data on SPEC 2006 (train data, comparing asan with asan-coverage={0,1,2}): asan+cov0 asan+cov1 diff 0-1 asan+cov2 diff 0-2 diff 1-2 400.perlbench, 65.60, 65.80, 1.00, 76.20, 1.16, 1.16 401.bzip2, 65.10, 65.50, 1.01, 75.90, 1.17, 1.16 403.gcc, 1.64, 1.69, 1.03, 2.04, 1.24, 1.21 429.mcf, 21.90, 22.60, 1.03, 23.20, 1.06, 1.03 445.gobmk, 166.00, 169.00, 1.02, 205.00, 1.23, 1.21 456.hmmer, 88.30, 87.90, 1.00, 91.00, 1.03, 1.04 458.sjeng, 210.00, 222.00, 1.06, 258.00, 1.23, 1.16 462.libquantum, 1.73, 1.75, 1.01, 2.11, 1.22, 1.21 464.h264ref, 147.00, 152.00, 1.03, 160.00, 1.09, 1.05 471.omnetpp, 115.00, 116.00, 1.01, 140.00, 1.22, 1.21 473.astar, 133.00, 131.00, 0.98, 142.00, 1.07, 1.08 483.xalancbmk, 118.00, 120.00, 1.02, 154.00, 1.31, 1.28 433.milc, 19.80, 20.00, 1.01, 20.10, 1.02, 1.01 444.namd, 16.20, 16.20, 1.00, 17.60, 1.09, 1.09 447.dealII, 41.80, 42.20, 1.01, 43.50, 1.04, 1.03 450.soplex, 7.51, 7.82, 1.04, 8.25, 1.10, 1.05 453.povray, 14.00, 14.40, 1.03, 15.80, 1.13, 1.10 470.lbm, 33.30, 34.10, 1.02, 34.10, 1.02, 1.00 482.sphinx3, 12.40, 12.30, 0.99, 13.00, 1.05, 1.06 llvm-svn: 199488
-
Chandler Carruth authored
the verifier after ensuring the CFG is at least usefully formed. This fixes a number of problems: 1) The PreVerifier was missing the controls the Verifier provides over *how* an invalid module is handled -- it just aborted the program! Now it uses the same logic as the Verifier which is significantly more library-friendly. 2) The DominatorTree used previously could have been cached and not updated due to bugs in prior passes and we would silently use the stale tree. This could cause dominance errors to not be as quickly diagnosed. 3) We can now (in the next patch) pull the functionality of the verifier apart from the pass infrastructure so that you can verify IR without having any form of pass manager. This in turn frees the code to share logic between old and new pass manager variants. Along the way I fixed at least one annoying bug -- the state for 'Broken' wasn't being cleared from run to run causing all functions visited after the first broken function to be marked as broken regardless of whether *they* were a problem. Fortunately, I don't really know much of a way to observe this peculiarity. In case folks are worried about the runtime cost, its negligible. I looked at running the entire regression test suite (which should be a relatively good use of the verifier) before and after but was unable to even measure the time spent on the verifier and there was no regresion from before to after. I checked both with debug builds and optimized builds. llvm-svn: 199487
-
Kevin Qin authored
llvm-svn: 199485
-
Chandler Carruth authored
accidentally pick that up while using Clang and run into subtle bugs down the road related to C++11 features not fully implemented in that version of the standard library. llvm-svn: 199484
-
Craig Topper authored
Switch a few instructions to use RI instead I so they don't require REX_W to be explicitly specified. llvm-svn: 199479
-
Craig Topper authored
llvm-svn: 199478
-
Craig Topper authored
llvm-svn: 199477
-
Craig Topper authored
llvm-svn: 199476
-
Craig Topper authored
llvm-svn: 199474
-
Craig Topper authored
VEX_PREFIX_66 doesn't need to set the hasOpSize flag since VEX instructions don't use the size fields it controls. llvm-svn: 199470
-
Craig Topper authored
llvm-svn: 199468
-
Hao Liu authored
Also add copy support for FPR16. Also add a missing test case file belongs to commit r197361. llvm-svn: 199463
-
Kevin Qin authored
[AArch64 NEON] Custom lower conversion between vector integer and vector floating point if element bit-width doesn't match. llvm-svn: 199462
-
Hao Liu authored
Also fix the problem can't select scalar_to_vector from f32 to v2f32/v4f32. llvm-svn: 199461
-
Bob Wilson authored
llvm-svn: 199447
-
Rafael Espindola authored
llvm-svn: 199437
-
- Jan 16, 2014
-
-
Reid Kleckner authored
This makes things a lot easier, because we can now talk about the "argument allocation", which allocates all the memory for the call in one shot. The only functional change is to the verifier for a feature that hasn't shipped yet. llvm-svn: 199434
-
Quentin Colombet authored
When registering a pass, a pass can now specify a second construct that takes as argument a pointer to TargetMachine. The PassInfo class has been updated to reflect that possibility. If such a constructor exists opt will use it instead of the default constructor when instantiating the pass. Since such IR passes are supposed to be rare, no specific support has been added to this commit to allow an easy registration of such a pass. In other words, for such pass, the initialization function has to be hand-written (see CodeGenPrepare for instance). Now, codegenprepare can be tested using opt: opt -codegenprepare -mtriple=mytriple input.ll llvm-svn: 199430
-