- Sep 02, 2013
-
-
Elena Demikhovsky authored
llvm-svn: 189740
-
Elena Demikhovsky authored
Specify GATHER/SCATTER as heavy instructions. llvm-svn: 189736
-
Elena Demikhovsky authored
This patch implements vector support for select instruction and adds specific vector instructions : shuffle and insertelement. (tests are also included) and functions lle_X_memset, lle_X_memcpy added. Done by Veselov, Yuri (mailto:Yuri.Veselov@intel.com) llvm-svn: 189735
-
Chandler Carruth authored
printing routine. This is made harder to see due to the surprising formatting, inconsistent brace usage, and repeated conditions that all test the same thing. The only "consequence" of this bug is re-assigning 'str' to an empty string when computing the error string for an error number of 0 in the event of a non-GNU strerror_r routine. So, nothing to see here other than cleanup. It did help me find PR17055 in clang-format though. llvm-svn: 189734
-
- Sep 01, 2013
-
-
Elena Demikhovsky authored
llvm-svn: 189729
-
Charles Davis authored
llvm-svn: 189728
-
Reed Kotler authored
don't exist in libc. This is really not the right way to solve this problem; but it's not clear to me at this time exactly what is the right way. If we create stubs here, they will cause link errors because these functions do not exist in libc. llvm-svn: 189727
-
- Aug 31, 2013
-
-
Benjamin Kramer authored
llvm-svn: 189726
-
Benjamin Kramer authored
The existing code missed some edge cases when e.g. we're going to emit sqrtf but only the availability of sqrt was checked. This happens on odd platforms like windows. llvm-svn: 189724
-
Andrew Trick authored
There was one case that we could hit a DebugValue where I didn't think to check. DebugValues are evil. No checkinable test case, sorry. It's an obvious fix. llvm-svn: 189717
-
Bill Schmidt authored
Here are a few miscellaneous things to tidy up the PPC64 fast-isel implementation. I corrected a couple of commentary lapses, and added documentation of future opportunities. I also implemented TargetMaterializeAlloca, which I somehow forgot when I split up the original huge patch. Finally, I decided to delete SelectCmp. I hadn't previously hooked it in to TargetSelectInstruction(), and when I did I realized it wasn't serving any useful purpose. This is only useful for compares that don't feed a branch in the same block, and to handle that we would have to have logic to interpret i1 as a condition register. This could probably be done, but would require Unseemly Hackery, and honestly does not seem worth the hassle. This ends the current patch series. llvm-svn: 189715
-
Bill Schmidt authored
This is the last substantive patch I'm planning for fast-isel in the near future, adding fast selection of integer truncates. There are certainly more things that can be improved (many of which are called out in FIXMEs), but for now we are catching most of the important cases. I'll document some of the remaining work in a cleanup patch shortly. llvm-svn: 189706
-
Bill Schmidt authored
llvm-svn: 189705
-
Bill Schmidt authored
This patch adds fast-isel support for calls (but not intrinsic calls or varargs calls). It also removes a badly-formed assert. There are some new tests just for calls, and also for folding loads into arguments on calls to avoid extra extends. llvm-svn: 189701
-
- Aug 30, 2013
-
-
Richard Mitton authored
llvm-svn: 189699
-
Richard Mitton authored
Fixed a bug where diassembling an instruction that had a prefix would cause LLVM to identify a 1-byte instruction, but then upon querying it for that 1-byte instruction would cause an undefined opcode. llvm-svn: 189698
-
Bill Wendling authored
llvm-svn: 189697
-
Daniel Dunbar authored
- We do some nasty things w.r.t. installing or overriding signal handlers in order to improve our crash recovery support or interaction with crash reporting software, and those things are not necessarily appropriate when LLVM is being linked into a client application that has its own ideas about how to do things. This gives those clients a way to disable that handling at build time. - Currently, the code this guards is all Apple specific, but other platforms might have the same concerns so I went for a more generic configure name. Someone who is more familiar with library embedding on Windows can handle choosing which of the Windows/Signals.inc behaviors might make sense to go under this flag. - This also fixes the proper autoconf'ing of ENABLE_BACKTRACES. The code expects it to be undefined when disabled, but the autoconf check was just defining it to 0. llvm-svn: 189694
-
Reed Kotler authored
has hard float, when you compile the mips32 code you have to make sure that it knows to compile any mips32 routines as hard float. I need to clean up the way mips16 hard float is specified but I need to first think through all the details. Mips16 always has a form of soft float, the difference being whether the underlying hardware has floating point. So it's not really necessary to pass the -soft-float to llvm since soft-float is always true for mips16 by virtue of the fact that it will not register floating point registers. By using this fact, I can simplify the way this is all handled. llvm-svn: 189690
-
Andrew Trick authored
Remove redundant or bug-prone LiveInterval APIs. llvm-svn: 189685
-
Bill Schmidt authored
Yet another chunk of fast-isel code. This one handles various conversions involving floating-point. (It also includes some miscellaneous handling throughout the back end for LWA_32 and LWAX_32 that should have been part of the load-store patch.) llvm-svn: 189677
-
Andrey Churbanov authored
llvm-svn: 189673
-
Benjamin Kramer authored
PR17026. Also avoid undefined shifts and shift amounts larger than 64 bits (those are always undef because we can't represent integer types that large). llvm-svn: 189672
-
Benjamin Kramer authored
Currently this is just the atom model with SSE4.2 enabled. llvm-svn: 189669
-
Craig Topper authored
llvm-svn: 189656
-
Craig Topper authored
llvm-svn: 189654
-
Craig Topper authored
Teach X86 backend to create BMI2 BZHI instructions from (and X, (add (shl 1, Y), -1)). Fixes PR17038. llvm-svn: 189653
-
Michael Gottesman authored
This reverts commit r189619. The commit was breaking the arm_neon_intrinsic test. llvm-svn: 189648
-
Andrew Trick authored
This removes all expensive pressure tracking logic from the scheduling critical path of node comparison. llvm-svn: 189643
-
Andrew Trick authored
Return true for LRGs that end at EarlyClobber or Register slots. llvm-svn: 189642
-
Andrew Trick authored
Only compare pressure within the same set. When multiple sets are affected, we prioritize the most constrained set. llvm-svn: 189641
-
Andrew Trick authored
Created SUPressureDiffs array to hold the per node PDiff computed during DAG building. Added a getUpwardPressureDelta API that will soon replace the old one. Compute PressureDelta here from the precomputed PressureDiffs. Updating for liveness will come next. llvm-svn: 189640
-
Bill Schmidt authored
Mostly trivial patch adding support for compares. The meat of the work was added with the branch support. llvm-svn: 189639
-
Bill Schmidt authored
llvm-svn: 189638
-
Bill Schmidt authored
This is the next big chunk of fast-isel code. The primary purpose is to implement selection of loads and stores, but there is a lot of drag-along to support this. The common code to analyze addresses for both loads and stores is substantial. It's also necessary to add the materialization code for global values. Related to load-store processing is the code to fold loads into integer extends, since otherwise we generate lots of redundant instructions. We also need to add some overrides to some FastEmit routines to ensure we don't assign GPR 0 to a virtual register when this would change the meaning of an instruction. I added handling selection of a few binary arithmetic instructions, to enable committing some test cases I wrote a while back. Finally, ap couple of miscellaneous changes: * I cleaned up some poor style from a previous patch in PPCISelLowering.cpp, pointed out by David Blaikie. * I enlarged the Addr.Offset field to avoid sign problems with 32-bit offsets. llvm-svn: 189636
-
Andrew Trick authored
llvm-svn: 189635
-
Bill Wendling authored
llvm-svn: 189632
-
Eric Christopher authored
any maintained consumers of it on that platform. llvm-svn: 189631
-
Eric Christopher authored
llvm-svn: 189630
-
Eli Friedman authored
This is a re-commit of r189442; I'll follow up with clang changes. The previous default was almost, but not quite enough digits to represent a floating-point value in a manner which preserves the representation when it's read back in. The larger default is much less confusing. I spent some time looking into printing exactly the right number of digits if a precision isn't specified, but it's kind of complicated, and I'm not really sure I understand what APFloat::toString is supposed to output for FormatPrecision != 0 (or maybe the current API specification is just silly, not sure which). I have a WIP patch if anyone is interested. llvm-svn: 189624
-