- Jun 13, 2013
-
-
Bill Schmidt authored
This is a preliminary patch for fast instruction selection on PowerPC. Code generation can differ between DAG isel and fast isel. Existing tests that specify -O0 were written to expect DAG isel. Make this explicit by adding -fast-isel=false to the tests. In some cases specifying -fast-isel=false produces different code even when there isn't a fast instruction selector specified. This is because TM.Options.EnableFastISel = 1 at -O0 whether or not a FastISel object exists. Thus disabling fast isel can actually produce less conservative code. Because of this, some of the expected code generation in the -O0 tests needs to be adjusted. In particular, handling of function arguments is less conservative with -fast-isel=false (see isOnlyUsedInEntryBlock() in SelectionDAGBuilder.cpp). This results in fewer stack accesses and, in some cases, reduced stack size as uselessly loaded values are no longer stored back to spill locations in the stack. No functional change with this patch; test case adjustments only. llvm-svn: 183939
-
Tom Stellard authored
The test case for this is way too complex to be useful as a lit test, and I was unable to reduce it. https://bugs.freedesktop.org/show_bug.cgi?id=65438 llvm-svn: 183937
-
Rafael Espindola authored
llvm-svn: 183934
-
Derek Schuff authored
This pass was assuming that if hasAddressTaken() returns false for a function, the function's only uses are call sites. That's not true because there can be references by BlockAddresses too. Fix the pass to handle this case. Fix BlockAddress::replaceUsesOfWithOnConstant() to allow a function's type to be changed by RAUW'ing the function with a bitcast of the recreated function. Patch by Mark Seaborn. llvm-svn: 183933
-
Rafael Espindola authored
llvm-svn: 183928
-
Benjamin Kramer authored
Backends shouldn't retain any global state. No functionality change. llvm-svn: 183927
-
Reid Kleckner authored
This is in preparation for switching the clang driver over to using LLVM's Option library. Richard Smith introduced most of these changes to the clang driver in r167638. Reviewers: espindola on IRC Differential Revision: http://llvm-reviews.chandlerc.com/D970 llvm-svn: 183925
-
Rafael Espindola authored
llvm-svn: 183921
-
Rafael Espindola authored
llvm-svn: 183920
-
Rafael Espindola authored
Now PathV1.h is not needed in GraphWriter.h. llvm-svn: 183919
-
Rafael Espindola authored
llvm-svn: 183915
-
Amaury de la Vieuville authored
llvm-svn: 183914
-
Amaury de la Vieuville authored
llvm-svn: 183913
-
Rafael Espindola authored
llvm-svn: 183912
-
Rafael Espindola authored
llvm-svn: 183909
-
Rafael Espindola authored
llvm-svn: 183908
-
Benjamin Kramer authored
llvm-svn: 183907
-
Reid Kleckner authored
Execute's Data parameter is now optional, so we won't allocate memory for it on Windows and we'll close the process handle. The Unix code should probably do something similar to avoid accumulation of zombie children that haven't been waited on. Tested on Linux and Windows. llvm-svn: 183906
-
Aaron Ballman authored
llvm-svn: 183904
-
Dan Gohman authored
operator<< so that functions are printed as just their name instead of as their entire definition, which is excessively verbose in this context. llvm-svn: 183871
-
- Jun 12, 2013
-
-
Rafael Espindola authored
llvm-svn: 183868
-
Rafael Espindola authored
llvm-svn: 183866
-
Rafael Espindola authored
llvm-svn: 183865
-
Rafael Espindola authored
It was only used to implement ExecuteAndWait and ExecuteNoWait. Expose just those two functions and make Execute and Wait implementations details. llvm-svn: 183864
-
David Blaikie authored
Now that the PRED_BAD has been removed, this is failing the Clang -Werror build due to -Wcovered-switch-default. llvm-svn: 183863
-
Rafael Espindola authored
This is a temporary stepping stone for moving them out of Program. llvm-svn: 183860
-
Bill Schmidt authored
I'm taking David Blaikie's suggestion to use an Optional<PPC::Predicate> return value instead. That's the right solution for this problem. Thanks for pointing out that possibility! llvm-svn: 183858
-
Bill Schmidt authored
Introducing PRED_BAD caused some unexpected warnings that are now suppressed. llvm-svn: 183854
-
Rui Ueyama authored
These records are mandatory for executables and are used by the loader. Reviewers: rafael CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D939 llvm-svn: 183852
-
Rafael Espindola authored
Should fix the dragonegg build bots. llvm-svn: 183845
-
Bill Schmidt authored
This is a preparatory patch for fast-isel support. The instruction selector will need to access some functions in PPCGenCallingConv.inc, which in turn requires several helper functions to be defined. These are currently defined near the only use of PCCGenCallingConv.inc, inside PPCISelLowering.cpp. This patch moves the declaration of the functions into the associated header file to provide the needed visibility. No functional change intended. llvm-svn: 183844
-
Rafael Espindola authored
llvm-svn: 183843
-
Rafael Espindola authored
No functionality change. llvm-svn: 183842
-
Bill Schmidt authored
Allows returning a PPC::Predicate from a function with a no-predicate value possible. Preparatory patch for fast-isel on PPC64 ELF. No behavioral change intended. llvm-svn: 183841
-
Rafael Espindola authored
llvm-svn: 183840
-
Rafael Espindola authored
llvm-svn: 183839
-
Rafael Espindola authored
llvm-svn: 183838
-
Rafael Espindola authored
llvm-svn: 183836
-
Rafael Espindola authored
llvm-svn: 183835
-
Ulrich Weigand authored
[MC/DWARF] Support .debug_frame / .debug_line code alignment factors I've been comparing the object file output of LLVM's integrated assembler against the external assembler on PowerPC, and one area where differences still remain are in DWARF sections. In particular, the GNU assembler generates .debug_frame and .debug_line sections using a code alignment factor of 4, since all PowerPC instructions have size 4 and must be aligned to a multiple of 4. However, current MC code hard-codes a code alignment factor of 1. This patch changes this by adding a "minimum instruction alignment" data element to MCAsmInfo and using this as code alignment factor. This requires passing a MCContext into MCDwarfLineAddr::Encode and MCDwarfLineAddr::EncodeAdvanceLoc. Note that one caller, MCDwarfLineAddr::Write, didn't actually have that information available. However, it turns out that this routine is in fact never used in the whole code base, so the patch simply removes it. If it turns out to be needed again at a later time, it could be re-added with an updated interface. llvm-svn: 183834
-