History

Force inlining of avutil common routines

On some versions of gcc, these weren't always getting inlined due to hitting the inline cap limit in some files. This is generally bad, as most of these functions are smaller inlined than not. (cherry picked from commit eb3755a5aa65da685d81399cfae4bd35e4a178b6)

Jason Garrett-Glaser committed 15 years ago

Commit 545dc691 parent 8e624c12 files · +18 −18Browse files

Unified · Split

2 files
  1. libavutil/arm/intmath.h +7 −7
  2. libavutil/common.h +11 −11
libavutil/arm/intmath.h+7−7
@@ -31,7 +31,7 @@ · 30 unmodified lines
3131 #if HAVE_ARMV6
3232
3333 #define FASTDIV FASTDIV
34−static inline av_const int FASTDIV(int a, int b)
34+static av_always_inline av_const int FASTDIV(int a, int b)
3535 {
3636 int r, t;
3737 __asm__ volatile("cmp %3, #2 \n\t"
@@ -43,7 +43,7 @@ static inline av_const int FASTDIV(int a, int b) · 5 unmodified lines
4343 }
4444
4545 #define av_clip_uint8 av_clip_uint8_arm
46−static inline av_const uint8_t av_clip_uint8_arm(int a)
46+static av_always_inline av_const uint8_t av_clip_uint8_arm(int a)
4747 {
4848 unsigned x;
4949 __asm__ volatile ("usat %0, #8, %1" : "=r"(x) : "r"(a));
@@ -51,7 +51,7 @@ static inline av_const uint8_t av_clip_uint8_arm(int a) · 1 unmodified line
5151 }
5252
5353 #define av_clip_int8 av_clip_int8_arm
54−static inline av_const uint8_t av_clip_int8_arm(int a)
54+static av_always_inline av_const uint8_t av_clip_int8_arm(int a)
5555 {
5656 unsigned x;
5757 __asm__ volatile ("ssat %0, #8, %1" : "=r"(x) : "r"(a));
@@ -59,7 +59,7 @@ static inline av_const uint8_t av_clip_int8_arm(int a) · 1 unmodified line
5959 }
6060
6161 #define av_clip_uint16 av_clip_uint16_arm
62−static inline av_const uint16_t av_clip_uint16_arm(int a)
62+static av_always_inline av_const uint16_t av_clip_uint16_arm(int a)
6363 {
6464 unsigned x;
6565 __asm__ volatile ("usat %0, #16, %1" : "=r"(x) : "r"(a));
@@ -67,7 +67,7 @@ static inline av_const uint16_t av_clip_uint16_arm(int a) · 1 unmodified line
6767 }
6868
6969 #define av_clip_int16 av_clip_int16_arm
70−static inline av_const int16_t av_clip_int16_arm(int a)
70+static av_always_inline av_const int16_t av_clip_int16_arm(int a)
7171 {
7272 int x;
7373 __asm__ volatile ("ssat %0, #16, %1" : "=r"(x) : "r"(a));
@@ -77,7 +77,7 @@ static inline av_const int16_t av_clip_int16_arm(int a) · 3 unmodified lines
7777 #else /* HAVE_ARMV6 */
7878
7979 #define FASTDIV FASTDIV
80−static inline av_const int FASTDIV(int a, int b)
80+static av_always_inline av_const int FASTDIV(int a, int b)
8181 {
8282 int r, t;
8383 __asm__ volatile("umull %1, %0, %2, %3"
@@ -88,7 +88,7 @@ static inline av_const int FASTDIV(int a, int b) · 4 unmodified lines
8888 #endif /* HAVE_ARMV6 */
8989
9090 #define av_clipl_int32 av_clipl_int32_arm
91−static inline av_const int32_t av_clipl_int32_arm(int64_t a)
91+static av_always_inline av_const int32_t av_clipl_int32_arm(int64_t a)
9292 {
9393 int x, y;
9494 __asm__ volatile ("adds %1, %R2, %Q2, lsr #31 \n\t"
libavutil/common.h+11−11
@@ -64,7 +64,7 @@ extern const uint8_t ff_log2_tab[256]; · 63 unmodified lines
6464
6565 extern const uint8_t av_reverse[256];
6666
67−static inline av_const int av_log2_c(unsigned int v)
67+static av_always_inline av_const int av_log2_c(unsigned int v)
6868 {
6969 int n = 0;
7070 if (v & 0xffff0000) {
@@ -80,7 +80,7 @@ static inline av_const int av_log2_c(unsigned int v) · 9 unmodified lines
8080 return n;
8181 }
8282
83−static inline av_const int av_log2_16bit_c(unsigned int v)
83+static av_always_inline av_const int av_log2_16bit_c(unsigned int v)
8484 {
8585 int n = 0;
8686 if (v & 0xff00) {
@@ -107,7 +107,7 @@ static inline av_const int av_log2_16bit_c(unsigned int v) · 20 unmodified lines
107107 * @param amax maximum value of the clip range
108108 * @return clipped value
109109 */
110−static inline av_const int av_clip_c(int a, int amin, int amax)
110+static av_always_inline av_const int av_clip_c(int a, int amin, int amax)
111111 {
112112 if (a < amin) return amin;
113113 else if (a > amax) return amax;
@@ -119,7 +119,7 @@ static inline av_const int av_clip_c(int a, int amin, int amax) · 5 unmodified lines
119119 * @param a value to clip
120120 * @return clipped value
121121 */
122−static inline av_const uint8_t av_clip_uint8_c(int a)
122+static av_always_inline av_const uint8_t av_clip_uint8_c(int a)
123123 {
124124 if (a&(~0xFF)) return (-a)>>31;
125125 else return a;
@@ -130,7 +130,7 @@ static inline av_const uint8_t av_clip_uint8_c(int a) · 4 unmodified lines
130130 * @param a value to clip
131131 * @return clipped value
132132 */
133−static inline av_const int8_t av_clip_int8_c(int a)
133+static av_always_inline av_const int8_t av_clip_int8_c(int a)
134134 {
135135 if ((a+0x80) & ~0xFF) return (a>>31) ^ 0x7F;
136136 else return a;
@@ -141,7 +141,7 @@ static inline av_const int8_t av_clip_int8_c(int a) · 4 unmodified lines
141141 * @param a value to clip
142142 * @return clipped value
143143 */
144−static inline av_const uint16_t av_clip_uint16_c(int a)
144+static av_always_inline av_const uint16_t av_clip_uint16_c(int a)
145145 {
146146 if (a&(~0xFFFF)) return (-a)>>31;
147147 else return a;
@@ -152,7 +152,7 @@ static inline av_const uint16_t av_clip_uint16_c(int a) · 4 unmodified lines
152152 * @param a value to clip
153153 * @return clipped value
154154 */
155−static inline av_const int16_t av_clip_int16_c(int a)
155+static av_always_inline av_const int16_t av_clip_int16_c(int a)
156156 {
157157 if ((a+0x8000) & ~0xFFFF) return (a>>31) ^ 0x7FFF;
158158 else return a;
@@ -163,7 +163,7 @@ static inline av_const int16_t av_clip_int16_c(int a) · 4 unmodified lines
163163 * @param a value to clip
164164 * @return clipped value
165165 */
166−static inline av_const int32_t av_clipl_int32_c(int64_t a)
166+static av_always_inline av_const int32_t av_clipl_int32_c(int64_t a)
167167 {
168168 if ((a+0x80000000u) & ~UINT64_C(0xFFFFFFFF)) return (a>>63) ^ 0x7FFFFFFF;
169169 else return a;
@@ -176,7 +176,7 @@ static inline av_const int32_t av_clipl_int32_c(int64_t a) · 6 unmodified lines
176176 * @param amax maximum value of the clip range
177177 * @return clipped value
178178 */
179−static inline av_const float av_clipf_c(float a, float amin, float amax)
179+static av_always_inline av_const float av_clipf_c(float a, float amin, float amax)
180180 {
181181 if (a < amin) return amin;
182182 else if (a > amax) return amax;
@@ -187,7 +187,7 @@ static inline av_const float av_clipf_c(float a, float amin, float amax) · 4 unmodified lines
187187 * @param x value used to compute ceil(log2(x))
188188 * @return computed ceiling of log2(x)
189189 */
190−static inline av_const int av_ceil_log2_c(int x)
190+static av_always_inline av_const int av_ceil_log2_c(int x)
191191 {
192192 return av_log2((x - 1) << 1);
193193 }
@@ -197,7 +197,7 @@ static inline av_const int av_ceil_log2_c(int x) · 3 unmodified lines
197197 * @param x value to count bits of
198198 * @return the number of bits set to one in x
199199 */
200−static inline av_const int av_popcount_c(uint32_t x)
200+static av_always_inline av_const int av_popcount_c(uint32_t x)
201201 {
202202 x -= (x >> 1) & 0x55555555;
203203 x = (x & 0x33333333) + ((x >> 2) & 0x33333333);

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t